import { Option } from 'kung-fu'; export declare class DecodeError extends Error { constructor(message: string); } export declare class Decoder { private _run; constructor(_run: (data: any) => T); decodeObject(data: Object): T; decodeString(data: string): T; map(f: (t: T) => U): Decoder; andThen(f: (t: T) => Decoder): Decoder; reason(f: (reason: string) => string): Decoder; static fail(message: string): Decoder; static succeed(value: T): Decoder; static string: Decoder; static number: Decoder; static integer: Decoder; static boolean: Decoder; maybe(): Decoder>; array(): Decoder>; at(path: Array): Decoder; dict(): Decoder<{ [key: string]: T; }>; static oneOf(decoders: Array>): Decoder; static object2(a: Decoder, b: Decoder, f: (a: A, b: B) => X): Decoder; static object3(a: Decoder, b: Decoder, c: Decoder, f: (a: A, b: B, c: C) => X): Decoder; static object4(a: Decoder, b: Decoder, c: Decoder, d: Decoder, f: (a: A, b: B, c: C, d: D) => X): Decoder; static object5(a: Decoder, b: Decoder, c: Decoder, d: Decoder, e: Decoder, f: (a: A, b: B, c: C, d: D, e: E) => X): Decoder; static object6(a: Decoder, b: Decoder, c: Decoder, d: Decoder, e: Decoder, f: Decoder, x: (a: A, b: B, c: C, d: D, e: E, f: F) => X): Decoder; static object7(a: Decoder, b: Decoder, c: Decoder, d: Decoder, e: Decoder, f: Decoder, g: Decoder, x: (a: A, b: B, c: C, d: D, e: E, f: F, g: G) => X): Decoder; static object8(a: Decoder, b: Decoder, c: Decoder, d: Decoder, e: Decoder, f: Decoder, g: Decoder, h: Decoder, x: (a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) => X): Decoder; }