export declare type BindingKind = "class" | "enum" | "enummember" | "interface" | "variable" | "property" | "method" | "typealias" | "typeparam" | "constructor" | "function" | "parameter" | "reexport"; export declare type Loc = { file: string; line: number; column: number; }; export declare type Binding = { kind: BindingKind; id: string; description?: string; loc?: Loc; abstract?: boolean; readonly?: boolean; optional?: boolean; }; export declare type BindingType = { type: string; typeSource?: string; typeParamSource?: string; properties?: { [name: string]: Item; }; instanceProperties?: { [name: string]: Item; }; typeArgs?: readonly BindingType[]; typeParams?: readonly Param[]; key?: Param; signatures?: readonly CallSignature[]; extends?: BindingType; construct?: Item; implements?: readonly BindingType[]; }; export declare type CallSignature = { type: "function" | "constructor"; params: readonly Param[]; returns?: BindingType; typeParams?: readonly Param[]; }; export declare type Param = BindingType & { name?: string; id: string; kind: "parameter" | "typeparam"; description?: string; loc?: Loc; optional?: boolean; rest?: boolean; default?: string; }; export declare type Item = Binding & BindingType; export interface GatherSpec { filename: string; basedir?: string; } export declare function gather(spec: GatherSpec): { [name: string]: Item; }; export declare function gatherMany(specs: readonly GatherSpec[]): readonly { [name: string]: Item; }[];