import { Matcher, ShapeFields } from '../types/matchers'; export declare const FACTORY: unique symbol; export interface HashFunction { (value: T): string; } export interface ValueHasherFactoryFunction { (options?: P): HashFunction; } export interface ValueHasherFactory extends ValueHasherFactoryFunction { [FACTORY]: true; } export declare function createHasherFactory(id: string, factory: ValueHasherFactoryFunction): ValueHasherFactory; export declare const unique: HashFunction<{}>; export declare function empty(value: undefined): string; export declare function nil(value: null): string; export declare function bool(value: boolean): string; export declare function number(value: number): string; export declare function string(value: string): string; export declare const date: (value: Date) => string; export declare const func: HashFunction; export declare const object: HashFunction; export declare const instance: HashFunction; export declare const array: HashFunction; export declare const instanceOf: HashFunction; export declare const matcher: HashFunction>; export declare const any: (value: any) => string; export declare const oneOf: ValueHasherFactory<{}, {}[]>; export declare const shape: ValueHasherFactory<{}, ShapeFields<{}>>; export declare const arrayOf: ValueHasherFactory<{}[], Matcher<{}, any>>; export declare const objectOf: ValueHasherFactory<{ [key: string]: {}; }, Matcher<{}, any>>; export declare const oneOfType: ValueHasherFactory<{}, Matcher<{}, any>[]>; export declare const optional: ValueHasherFactory<{} | undefined, Matcher<{}, any>>; export declare const saveHash: ValueHasherFactory<{}, Matcher<{}, any>>; export declare function ignore(value: any): string; export declare function type(matcher: Matcher): HashFunction; export declare function registerTypeHasher | ValueHasherFactory>(type: Matcher | ((...args: Array) => Matcher), hasher: T): T;