import { ExoDecor } from '../../../ExoTypeScripts/ExoDecor'; import { ExoConstructor, ExoSelects, ExoTyping } from '../../../accessories/ExoTypings'; import { ExoGetter, ExoValidator } from '../../accessories/ExoRouteTypings'; import { ExoQueryInfo } from './accessories/ExoQueryInfo'; type Typer = Type | (() => Type); type Type = ExoConstructor | ExoSelects; export interface ExoQueryOpts { maxlen?: number; optional?: boolean; getter?: ExoGetter; validator?: ExoValidator; } export declare function ExoQuery(): ExoDecor; export declare function ExoQuery(opts: ExoQueryOpts): ExoDecor; export declare function ExoQuery(typer: Typer): ExoDecor; export declare function ExoQuery(typer: Typer, opts: ExoQueryOpts): ExoDecor; export declare class ExoQueryField { name: string; type: ExoTyping; maxlen?: number; optional: boolean; selects?: ExoSelects; getter: ExoGetter; validator: ExoValidator | null; constructor(name: string, type: ExoConstructor, selects?: ExoSelects, opts?: ExoQueryOpts); parse(url: URL, dev: boolean): { value: any; raw: string | number | boolean | void; }; private getStrval; private getRaw; private getValue; private throw; get info(): ExoQueryInfo; } export {};