import { QueryIR } from './ir.js';
import { InitialQueryBuilder, QueryBuilder } from './builder/index.js';
type StableIdentityValue = null | boolean | number | string | Array<StableIdentityValue> | {
    [key: string]: StableIdentityValue;
};
export declare class UnhashableQueryIRError extends Error {
    readonly path: string;
    readonly reason: string;
    constructor(path: string, reason: string);
}
export declare function getStableQueryIRHash(query: QueryIR): string;
export declare function getStableQueryBuilderHash(query: InitialQueryBuilder | QueryBuilder<any>): string;
export declare function getStableValueHash(value: unknown, path?: string): string;
export declare function canonicalizeQueryIR(query: QueryIR): StableIdentityValue;
export {};
