import { Parser } from "./types"; type Tail> = ((...rest: T) => void) extends ((h: unknown, ...r: infer R) => void) ? R : never; type FirstElement> = T[0]; type LastElement> = T[Exclude>]; type PickValue = T extends ReadonlyArray ? U : T; type FlattenArray> = Array>; type PipeFunction = (this: Parser, arg: A) => B; type ExcludeValues = T extends readonly (infer A)[] ? U extends readonly (infer B)[] ? A extends B ? never : A : never : never; export declare const flatten: () => >(haystack: T) => FlattenArray; export declare const pop: () => >(haystack: T) => LastElement; export declare const shift: () => >(haystack: T) => FirstElement; export declare const join: () => >(haystack: T) => string; export declare const expand: () => (...haystack: ReadonlyArray) => ReadonlyArray; export declare function zip(mapper: (parser: Parser, value: T) => R): (this: Parser>, values: ReadonlyArray) => ReadonlyArray; export declare const int: () => (number: string) => number; export declare const float: () => (number: string) => number; export declare const filter: | unknown)[]>(values: T, strict?: boolean) => (haystack: H) => ExcludeValues[]; export declare function pipe(fn1: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction, fn5: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction, fn5: PipeFunction, fn6: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction, fn5: PipeFunction, fn6: PipeFunction, fn7: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction, fn5: PipeFunction, fn6: PipeFunction, fn7: PipeFunction, fn8: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction, fn5: PipeFunction, fn6: PipeFunction, fn7: PipeFunction, fn8: PipeFunction, fn9: PipeFunction): PipeFunction; export declare function pipe(fn1: PipeFunction, fn2: PipeFunction, fn3: PipeFunction, fn4: PipeFunction, fn5: PipeFunction, fn6: PipeFunction, fn7: PipeFunction, fn8: PipeFunction, fn9: PipeFunction, ...fns: Array>): PipeFunction; export {};