export interface AuthResponse {
    user: {
        id: string;
        email: string;
    };
    token: string;
    refreshToken: string;
}
type ChangeListener = (data: any) => void;
declare class UserDOClient {
    private baseUrl;
    private user;
    private authListeners;
    private ws;
    private changeListeners;
    constructor(baseUrl: string);
    private get headers();
    private checkAuthStatus;
    private emitAuthChange;
    private connectWebSocket;
    private disconnectWebSocket;
    private handleRealtimeMessage;
    onAuthStateChanged(listener: (user: {
        id: string;
        email: string;
    } | null) => void): void;
    offAuthStateChanged(listener: (user: {
        id: string;
        email: string;
    } | null) => void): void;
    signup(email: string, password: string): Promise<AuthResponse>;
    login(email: string, password: string): Promise<AuthResponse>;
    logout(): Promise<void>;
    get(key: string): Promise<any>;
    set(key: string, value: any): Promise<{
        ok: boolean;
    }>;
    onChange(key: string, listener: ChangeListener): () => void;
    collection(name: string): {
        create(data: any): Promise<unknown>;
        findById(id: string): Promise<unknown>;
        update(id: string, updates: any): Promise<unknown>;
        delete(id: string): Promise<void>;
        onChange(listener: ChangeListener): () => void;
        query(): {
            where(field: string, op: string, value: any): /*elided*/ any;
            orderBy(field: string, dir?: "asc" | "desc"): /*elided*/ any;
            limit(count: number): /*elided*/ any;
            get(): Promise<unknown>;
        };
    };
}
export { UserDOClient };
export default UserDOClient;
