import { LangfuseCoreOptions, LangfuseCore, LangfusePersistedProperty, LangfuseFetchOptions, LangfuseFetchResponse, LangfuseWebStateless } from 'langfuse-core';
export { LangfuseEventClient, LangfuseGenerationClient, LangfuseSpanClient, LangfuseTraceClient } from 'langfuse-core';

type LangfuseOptions = {
    persistence?: "localStorage" | "sessionStorage" | "cookie" | "memory";
    persistence_name?: string;
} & LangfuseCoreOptions;

declare class Langfuse extends LangfuseCore {
    private _storage;
    private _storageCache;
    private _storageKey;
    constructor(params?: {
        publicKey?: string;
        secretKey?: string;
    } & LangfuseOptions);
    getPersistedProperty<T>(key: LangfusePersistedProperty): T | undefined;
    setPersistedProperty<T>(key: LangfusePersistedProperty, value: T | null): void;
    fetch(url: string, options: LangfuseFetchOptions): Promise<LangfuseFetchResponse>;
    getLibraryId(): string;
    getLibraryVersion(): string;
    getCustomUserAgent(): void;
}
declare class LangfuseWeb extends LangfuseWebStateless {
    private _storage;
    private _storageCache;
    private _storageKey;
    constructor(params?: {
        publicKey?: string;
    } & LangfuseOptions);
    getPersistedProperty<T>(key: LangfusePersistedProperty): T | undefined;
    setPersistedProperty<T>(key: LangfusePersistedProperty, value: T | null): void;
    fetch(url: string, options: LangfuseFetchOptions): Promise<LangfuseFetchResponse>;
    getLibraryId(): string;
    getLibraryVersion(): string;
    getCustomUserAgent(): void;
}

export { Langfuse, LangfuseOptions, LangfuseWeb, Langfuse as default };
