import NDK, { NDKConstructorParams, NDKEvent } from '@nostr-dev-kit/ndk';
import { CreateSubscription, InitNdk, LoginData, LoginWithExtension, LoginWithPrivateKey, LoginWithRemoteSigner, RemoveSubscription, SetSigner, Subscriptions } from '../types';
type State = {
    constructorParams: NDKConstructorParams | undefined;
    ndk: NDK | undefined;
    subscriptions: Subscriptions;
    loginData: LoginData;
};
type Actions = {
    initNdk: InitNdk;
    setSigner: SetSigner;
    createSubscription: CreateSubscription;
    removeSubscription: RemoveSubscription;
    addEvent: (subId: string, event: NDKEvent, replaceOlderReplaceableEvents?: boolean) => void;
    setEose: (subId: string, eose: boolean) => void;
    setHasMore: (subId: string, hasMore: boolean) => void;
    loadMore: (subId: string, limit?: number, since?: number | null) => void;
    loginWithExtension: LoginWithExtension;
    loginWithRemoteSigner: LoginWithRemoteSigner;
    loginWithPrivateKey: LoginWithPrivateKey;
    loginFromLocalStorage: () => void;
    logout: () => void;
};
export declare const useStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<State & Actions>, "persist"> & {
    persist: {
        setOptions: (options: Partial<import("zustand/middleware").PersistOptions<State & Actions, {
            loginData: LoginData;
        }>>) => void;
        clearStorage: () => void;
        rehydrate: () => Promise<void> | void;
        hasHydrated: () => boolean;
        onHydrate: (fn: (state: State & Actions) => void) => () => void;
        onFinishHydration: (fn: (state: State & Actions) => void) => () => void;
        getOptions: () => Partial<import("zustand/middleware").PersistOptions<State & Actions, {
            loginData: LoginData;
        }>>;
    };
}>;
export {};
