import { framer, Synnax } from '@synnaxlabs/client';
import { Store, StoreConfig } from './store';
import { status } from '../../status/aether';
interface ClientArgs<ScopedStore extends Store> {
    client: Synnax | null;
    openStreamer?: framer.StreamOpener;
    storeConfig: StoreConfig<ScopedStore>;
    handleError: status.ErrorHandler;
    handleAsyncError: status.AsyncErrorHandler;
}
export declare class Client<ScopedStore extends Store = Store> {
    private readonly store;
    private readonly streamCloser;
    readonly client: Synnax | null;
    constructor({ client, openStreamer, storeConfig, handleError, handleAsyncError, }: ClientArgs<ScopedStore>);
    awaitInitialized(): Promise<void>;
    scopedStore<ScopedStore extends Store>(scope: string): ScopedStore;
    close(): Promise<void>;
}
export {};
//# sourceMappingURL=client.d.ts.map