import { type Auth, type User } from "firebase/auth";
import { type Database, type DatabaseReference, QueryConstraint } from "firebase/database";
import { RealtimeDatabaseState } from "./RealtimeDatabaseState.svelte.js";
type PathFunctionOrString = ((user: User | null) => string) | string;
interface CreateNodeStateOptions {
    auth?: Auth;
    database: Database;
    path: PathFunctionOrString;
    query?: (user: User | null) => QueryConstraint[];
    listen?: boolean;
}
export declare class NodeListState<Data> extends RealtimeDatabaseState<Data[]> {
    private readonly queryParamsFn?;
    private listRef?;
    private queryRef?;
    constructor({ auth, database, path: pathFunctionOrString, listen, query: queryParamsFn }: CreateNodeStateOptions);
    protected init_ref(): Promise<void>;
    private createArrayFromSnapshot;
    protected listen_data(): void;
    protected fetch_data(): Promise<Data[]>;
    get_list_ref(): Promise<DatabaseReference | undefined>;
    add(data: Data): Promise<DatabaseReference>;
}
export {};
