/** * @since 0.6.0 */ import { Alternative1 } from 'fp-ts/es6/Alternative'; import { Lazy } from 'fp-ts/es6/function'; import { Monad1 } from 'fp-ts/es6/Monad'; import { Monoid } from 'fp-ts/es6/Monoid'; import * as O from 'fp-ts/es6/Option'; import { RowLacks } from './helpers'; import { Route } from './route'; declare module 'fp-ts/es6/HKT' { interface URItoKind { 'fp-ts-routing/Parser': Parser; } } declare const PARSER_URI = "fp-ts-routing/Parser"; type PARSER_URI = typeof PARSER_URI; /** * @category parsers * @since 0.4.0 */ export declare class Parser { readonly run: (r: Route) => O.Option<[A, Route]>; /** * @since 0.4.0 */ readonly _A: A; constructor(run: (r: Route) => O.Option<[A, Route]>); /** * @since 0.4.0 */ static of(a: A): Parser; /** * @since 0.4.0 */ map(f: (a: A) => B): Parser; /** * @since 0.4.0 */ ap(fab: Parser<(a: A) => B>): Parser; /** * @since 0.4.0 */ chain(f: (a: A) => Parser): Parser; /** * @since 0.4.0 */ alt(that: Parser): Parser; /** * @since 0.4.0 */ then(that: Parser>): Parser; } /** * @category parsers * @since 0.4.0 */ export declare const zero: () => Parser; /** * @category parsers * @since 0.4.0 */ export declare const parse: (parser: Parser, r: Route, a: A) => A; /** * @category parsers * @since 0.5.1 */ export declare const getParserMonoid: () => Monoid>; /** * @category parsers * @since 0.5.1 */ export declare const parser: Monad1 & Alternative1; /** * @category parsers * @since 0.5.1 */ export declare const alt: (that: Lazy>) => (fa: Parser) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const ap: (fa: Parser) => (fab: Parser<(a: A) => B>) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const apFirst: (fb: Parser) => (fa: Parser) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const apSecond: (fb: Parser) => (fa: Parser) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const chain: (f: (a: A) => Parser) => (ma: Parser) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const chainFirst: (f: (a: A) => Parser) => (ma: Parser) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const flatten: (mma: Parser>) => Parser; /** * @category parsers * @since 0.5.1 */ export declare const map: (f: (a: A) => B) => (fa: Parser) => Parser; /** * @category parsers * @since 0.6.0 */ export declare const then: (fb: Parser) => (fa: Parser & Parser>) => Parser; export {};