export interface Options { banExtra: boolean; } export declare type Path = string[]; export declare class LierError { path: Path; message: string[]; constructor(path: Path, message: string[]); inspect(opts: any, depth: any): string; toString(): string; } export declare type Nodes = any; export declare type MockNodes = { range: { min: number | string; max: number | string; }; marker: any; counter: any; }; export interface RootOptions { data: any; type: any; nodes: Nodes; isMock: boolean; declares: Nodes; cycleDeep?: number; } export declare class Root { data: any; type: any; nodes: Nodes; isMock: boolean; declares: Nodes; cycleDeep: number; errors: LierError[]; constructor(options: RootOptions); } export interface Context { data: any; path: Path; root: Root; validate: (data, type, path?: Path, root?: Root) => void; mock: (type, path?: Path, root?: Root) => any; select?: (types: any[]) => any; } export interface Type { description?: string; keyMock?: string; (ctx: Context): any; } export declare const controlKeys: { rest: string; };