/** * */ export declare type Failure = Readonly<{ type: 'failure'; reason: string; value: I; }>; export declare type Success = Readonly<{ type: 'success'; value: O; }>; export declare type Result = Failure | Success; export declare type Parser = (value: I) => Result; export declare type SuccessType = T extends Result ? Success : never; export declare type FailureType = T extends Result ? Failure : never; export declare type ResultType = T extends Parser ? Result : never; export declare type ParserType = T extends Parser ? U : never; export declare function optional(validator: Parser): Parser<(null | O), I>; export declare function voidable(validator: Parser): Parser<(undefined | O), I>; export declare function isString(value: I): Result; export declare function isNumber(value: I): Result; export declare function isUndefined(value: I): Result; export declare function isBoolean(value: I): Result; export declare function isAnyValue(value: I): Success; export declare function isObject(value: I): Result<{ [key: string]: any; }, I>; export declare function isArray(value: I): Result; export declare function objectOf(validators: { [K in keyof T]: Parser; }): Parser; export declare function indexedObjectOf(parser: Parser): Parser<{ [key: string]: T; }, I>; export declare function mapParser(validator: Parser, next: (value: A) => Result): Parser; export declare function mapFailure(result: Result, next: (failure: Failure) => B): (B | Success); export declare function mapSuccess(result: Result, next: (value: A) => B): (B | Failure); export declare function mapResult(result: Result, success: (value: A) => B, failure: (failure: Failure) => C): (B | C); export declare function arrayOf(validator: Parser): Parser; export declare function oneOf>>(parser: Parser, ...parsers: V): Parser<(ParserType | O), I>; export declare function isExactly(option: S): Parser; export declare function success(value: T): Success; export declare function failure(value: T, reason: string): Failure; export declare function isSuccess(result: Result): result is Success; export declare function isFailure(result: Result): result is Failure; //# sourceMappingURL=parse.d.ts.map