import { type Auth, type User } from "firebase/auth";
import { type Database } from "firebase/database";
import { RealtimeDatabaseState } from "./RealtimeDatabaseState.svelte.js";
type PathFunctionOrString = ((user: User | null) => string) | string;
interface NodeStateOptions {
    auth?: Auth;
    database: Database;
    path: PathFunctionOrString;
    autosave?: boolean;
    listen?: boolean;
}
export declare class NodeState<Data> extends RealtimeDatabaseState<Data> {
    private readonly autosave;
    private nodeRef?;
    constructor({ auth, database, path: pathFunctionOrString, listen, autosave }: NodeStateOptions);
    protected init_ref(): Promise<void>;
    protected listen_data(): void;
    fetch_data(): Promise<Data | null>;
    private save_data_to_firebase;
    set data(newValue: Data | undefined);
    get data(): Data | undefined | null;
    save<K extends keyof Data>(key?: K, update?: Data[K] | ((prevValue: Data[K]) => Data[K])): void;
}
export {};
