import { Expected, ExpectedAsync, ExpectedSync, MatchResult } from './types'; export declare type CheckResult = Async extends false ? CheckResultSync : CheckResultAsync; export declare type CheckResultSync = (expected: ExpectedSync) => CheckResultSync; export declare type CheckResultAsync = (expected: ExpectedAsync) => CheckResultAsync & PromiseLike; export declare class Checker implements PromiseLike { protected readonly actual: T; constructor(async: Async, actual: T); private readonly _async; get async(): Async; protected throwError(result: MatchResult): void; protected checkSync(expected: ExpectedSync): void; protected checkAsync(expected: ExpectedAsync): Promise; private readonly _promises; check(expected: Expected): this; then(resolve: any, reject: any): Promise; } export declare function checkSync(actual: T): CheckResultSync; export declare function checkAsync(actual: T): CheckResultAsync; export declare const check: typeof checkSync & { async: typeof checkAsync; };