export declare type Mapping = [key: string, value: string];
export declare enum EReturnStatus {
    MATCH = 0,
    NO_MATCH = 1,
    TIMEOUT = 2,
    WORD_BOUNDARY_FAIL_START = 3,
    WORD_BOUNDARY_FAIL_END = 4
}
export interface IResult {
    size: number;
    start: number;
    status: EReturnStatus;
}
export declare enum EDebugFailureReason {
    NO_PATH = 0,
    NO_NEW_PATHS = 1,
    TIMEOUT = 2,
    WORD_BOUNDARY_FAIL_START = 3,
    WORD_BOUNDARY_FAIL_END = 4
}
export interface IDebugFailure {
    inPos: number;
    containsPos: number;
    reason: EDebugFailureReason;
}
export interface IDebugFailureResult {
    result: IResult;
    failures: IDebugFailure[];
}
export interface IIndexOfOptions {
    matchRepeating: boolean;
    startIndex: number;
    startFromEnd: boolean;
    timeoutNs: number;
    matchOnWordBoundary: boolean;
    needlePosPointers: StrPosPointer | null;
}
declare const K_STR_POS_PTRS: unique symbol;
export declare type StrPosPointer = object & {
    [K_STR_POS_PTRS]: true;
};
export declare class ConfusableMatcherInstance {
    getKeyMappings(value: string): string[];
    computeStringPosPointers(needle: string): StrPosPointer;
    freeStringPosPointers(pointer: StrPosPointer): void;
    indexOf(input: string, needle: string, options?: IIndexOfOptions): IResult;
    indexOfAsync(callback: (result: IResult) => void, input: string, needle: string, options?: IIndexOfOptions): void;
    indexOfDebugFailures(input: string, needle: string, options?: IIndexOfOptions): IDebugFailureResult;
    indexOfDebugFailuresAsync(callback: (result: IDebugFailureResult) => void, input: string, needle: string, options?: IIndexOfOptions): void;
}
interface IConfusableMatcherProptotype {
    new (maps: string[][], skips: string[], addDefaultValues: boolean): ConfusableMatcherInstance;
}
declare let classExport: IConfusableMatcherProptotype;
export { classExport as ConfusableMatcherInterop };
declare const _default: IConfusableMatcherProptotype;
export default _default;
//# sourceMappingURL=binding.d.ts.map