import { Vnode } from 'hslayout';
import { json } from './DocSets';
import { DocsType } from './Types';
import { DocsNamedType } from './Types';
import { DocsReferenceIdType } from './Types';
import { Flags } from './Flags';
import { DocsComment } from './NodesDisplay';
export declare class DocsNode {
    static errCount: number;
    private static makeNode;
    static traverse(mdl: json, lib: string, path?: string): DocsNode;
    children: DocsNode[];
    comment: DocsComment;
    defaultValue: string;
    extendedBy: DocsReferenceIdType[];
    extendedTypes: DocsReferenceIdType[];
    FLAGS: Flags;
    flags: Flags;
    fullPath: string;
    getSignature: DocsGetSignature[];
    groups: DocsGroup[];
    id: number;
    indexSignature: DocsIndexSignature[];
    implementedTypes: DocsNamedType[];
    implementationOf: DocsReferenceIdType;
    implementedBy: DocsReferenceIdType[];
    inheritedFrom: DocsReferenceIdType;
    kind: number;
    kindString: string;
    kindPrint: string;
    lib: string;
    name: string;
    originalName: string;
    overwrites: DocsReferenceIdType;
    parameters: DocsParameter[];
    setSignature: DocsSetSignature[];
    protected signatures: DocsSignature[];
    sources: DocsSource[];
    target: number;
    TYPE: string[];
    type: DocsType;
    typeParameter: DocsTypeParameter[];
    constructor(mdl: json);
    getName(): string;
    getSignatures(): DocsSignature[];
    setSignatures(signatures: DocsSignature[]): void;
    getParameters(params: (s: DocsParamaterized) => Vnode[]): Vnode;
    title(): Vnode;
    commentLong(): Vnode;
    members(): Vnode;
}
export interface DocsGroup {
    title: string;
    kind: number;
    children: number[];
}
export interface DocsSource {
    fileName: string;
    line: number;
    character: number;
}
export interface DocsParamaterized extends DocsNode {
}
export interface DocsSignature extends DocsParamaterized {
}
export declare class DocsBaseNode extends DocsNode {
    mdl: json;
    constructor(mdl: json);
    init(): void;
    set(mdl: json, fields?: string[]): void;
    setFlags(mdlFlags: json): void;
}
declare class DocsSourced extends DocsBaseNode {
    init(): void;
}
declare class DocsStructured extends DocsSourced {
    init(): void;
}
declare class DocsWithDefault extends DocsSourced {
    init(): void;
}
declare class DocsRoot extends DocsBaseNode {
    init(): void;
}
declare class DocsExternalModule extends DocsStructured {
    init(): void;
}
declare class DocsModule extends DocsStructured {
    init(): void;
}
declare class DocsEnumeration extends DocsStructured {
    init(): void;
}
declare class DocsUnknown extends DocsBaseNode {
    init(): void;
}
declare class DocsEnumerationMember extends DocsWithDefault {
    init(): void;
}
declare class DocsVariable extends DocsWithDefault {
    init(): void;
}
declare class DocsFunction extends DocsSourced implements DocsParamaterized {
    init(): void;
}
declare class DocsClass extends DocsStructured {
    init(): void;
}
declare class DocsInterface extends DocsStructured {
    init(): void;
}
declare class DocsConstructor extends DocsSourced implements DocsParamaterized {
    init(): void;
}
declare class DocsProperty extends DocsWithDefault {
    init(): void;
}
declare class DocsMethod extends DocsSourced implements DocsParamaterized {
    init(): void;
}
declare class DocsCallSignature extends DocsBaseNode implements DocsParamaterized {
    init(): void;
    getName(): string;
}
export declare class DocsIndexSignature extends DocsBaseNode {
    init(): void;
}
declare class DocsConstructorSignature extends DocsBaseNode implements DocsParamaterized {
    init(): void;
}
export declare class DocsParameter extends DocsBaseNode {
    init(): void;
}
declare class DocsTypeLiteral extends DocsStructured {
    init(): void;
}
declare class DocsTypeParameter extends DocsBaseNode {
    init(): void;
}
declare class DocsAccessors extends DocsSourced implements DocsParamaterized {
    init(): void;
    getSignatures(): DocsSignature[];
}
export declare class DocsGetSignature extends DocsBaseNode {
    init(): void;
}
export declare class DocsSetSignature extends DocsBaseNode {
    init(): void;
}
declare class DocsObjectLiteral extends DocsStructured implements DocsParamaterized {
    init(): void;
}
declare class DocsTypeAlias extends DocsSourced {
    init(): void;
}
declare class DocsReference extends DocsBaseNode {
    init(): void;
}
export declare const groupKindTitle: {
    0: typeof DocsRoot;
    1: typeof DocsExternalModule;
    2: typeof DocsModule;
    4: typeof DocsEnumeration;
    8: typeof DocsUnknown;
    16: typeof DocsEnumerationMember;
    32: typeof DocsVariable;
    64: typeof DocsFunction;
    128: typeof DocsClass;
    256: typeof DocsInterface;
    512: typeof DocsConstructor;
    1024: typeof DocsProperty;
    2048: typeof DocsMethod;
    4096: typeof DocsCallSignature;
    8192: typeof DocsIndexSignature;
    16384: typeof DocsConstructorSignature;
    32768: typeof DocsParameter;
    65536: typeof DocsTypeLiteral;
    131072: typeof DocsTypeParameter;
    262144: typeof DocsAccessors;
    524288: typeof DocsGetSignature;
    1048576: typeof DocsSetSignature;
    2097152: typeof DocsObjectLiteral;
    4194304: typeof DocsTypeAlias;
    16777216: typeof DocsReference;
};
export {};
