import { Record as Neo4jRecord, QueryResult, Session } from "neo4j-driver";
interface Neo4jQueryState {
    loading: boolean;
    session?: Session;
    error?: Error;
    result?: QueryResult;
    records?: Neo4jRecord[];
    first?: Neo4jRecord;
}
export interface LazyResultState extends Neo4jQueryState {
    cypher?: string;
    params?: Record<string, any>;
    database?: string;
}
export interface EagerResultState extends LazyResultState {
    run: (params?: Record<string, any>, anotherDatabase?: string) => Promise<void | QueryResult>;
}
export declare const useCypher: (defaultAccessMode: any, cypher: string, params?: Record<string, any> | undefined, database?: string | undefined) => EagerResultState;
export declare const useReadCypher: (cypher: string, params?: Record<string, any> | undefined, database?: string | undefined) => EagerResultState;
export declare const useWriteCypher: (cypher: string, params?: Record<string, any> | undefined, database?: string | undefined) => EagerResultState;
export declare const useLazyReadCypher: (cypher: string, database?: string | undefined) => [(params?: Record<string, any> | undefined) => Promise<void | QueryResult>, LazyResultState];
export declare const useLazyWriteCypher: (cypher: string, database?: string | undefined) => [(params?: Record<string, any> | undefined) => Promise<void | QueryResult>, LazyResultState];
export {};
