export declare namespace Dict {
    type StringKeyed<Value> = {
        [key: string]: Value | void;
    };
    type NumberKeyed<Value> = {
        [key: number]: Value | void;
    };
    type StrKey<X> = StringKeyed<X>;
    type NumKey<X> = NumberKeyed<X>;
}
export declare namespace Func {
    type Comparator<X, Y = X> = (x: X, y: Y) => boolean;
}
export declare namespace PromiseRejectionWrapper {
    type Main<Param, Result> = (x: Param) => Result | Promise<Result>;
    type RejectionHandler<Param, Result> = (reason: any, param: Param) => Result | Promise<Result>;
    type Result<Param, Success, Failure> = Async<Param, Success> | Async<Param, Success | Failure>;
    type Async<Param, Result> = (x: Param) => Promise<Result>;
}
export declare namespace ErrorThrowingWrapper {
    type Main<Param, Result> = (x: Param) => Result;
    type ErrorHandler<Param, Result> = (error: any, param: Param) => Result;
    type Result<Param, Success, Failure> = Sync<Param, Success> | Sync<Param, Success | Failure>;
    type Sync<Param, Result> = (x: Param) => Result;
}
