type Path = (string | number)[]; export declare function optional(obj: any, fn: (obj: any) => T): T | undefined; export declare function iface(input: any, path: Path, fn: (obj: any) => T): T; export declare function array(input: any, path: Path, fn: (idx: number, obj: any) => T): T[]; export declare function string(input: any, path: Path): string; export declare function number(input: any, path: Path): number; export {};