import { AnyClass, ObjectOf } from 'tn-typescript'; import { ExoDecor } from '../../ExoTypeScripts/ExoDecor'; import { ExoGeoClass, ExoGeoType } from '../../accessories/ExoGeo'; import { ExoConstructor, ExoSelects, ExoTyping } from '../../accessories/ExoTypings'; type Typer = SingleType | [SingleType] | (() => SingleType | SingleType[]); type SingleType = ExoConstructor | AnyClass | ExoSelects | ExoGeoClass; type Explicit = () => SingleType | [SingleType] | ExoGeoType | undefined; export type ExoArgTypeNest = { clsname: string; args: ObjectOf; }; export type ExoArgTypeSingle = ExoArgTypeNest | ExoTyping | ExoGeoType | 'Date'; export type ExoArgTypeArr = ExoArgTypeSingle | [ExoArgTypeSingle]; export type ExoArgOpts = { optional?: boolean; }; export declare function ExoArg(): ExoDecor; export declare function ExoArg(opts: ExoArgOpts): ExoDecor; export declare function ExoArg(typer: Typer): ExoDecor; export declare function ExoArg(typer: Typer, opts: ExoArgOpts): ExoDecor; export declare class ExoArgClass { clsid: string; name: string; optional: boolean; private explicit; private design; trace: string[]; constructor(name: string, design: any, explicit: Explicit, trace: string[], opts?: ExoArgOpts); private getRawType; private getMainType; private getArgType; private $type?; get type(): ExoArgTypeArr; private $selects?; get selects(): readonly string[] | readonly number[] | undefined; } export {};