import { IRange, languages, IMarkdownString } from 'monaco-editor';
interface IBase {
    startColumn: number;
    startLineNumber: number;
    endColumn: number;
    endLineNumber: number;
}
export declare enum VMarkerSeverity {
    Hint = 1,
    Info = 2,
    Warning = 4,
    Error = 8
}
export interface IPosition {
    readonly lineNumber: number;
    readonly column: number;
    reName?: string;
}
export interface IBaseItem {
    label: string;
    insertText?: string;
    returnType?: string | string[];
    constents?: IMarkdownString;
}
export interface IKeys {
    [key: string]: string[];
}
export interface IKeyMaps {
    [key: string]: Map<string, IDocValue[]>;
}
export interface ISuggestion extends Omit<languages.CompletionItem, 'range' | 'label'> {
    label: string;
    originInsertText?: string;
    range?: IRange | languages.CompletionItemRanges;
}
export interface IError extends IBase {
    message: string;
    type?: VMarkerSeverity;
}
export interface IModules {
    [key: string]: ISuggestion;
}
export interface IKeyValue {
    [key: string]: string | number;
}
export interface IKeyValueStr {
    [key: string]: string;
}
export interface IKeyObjectValue {
    [key: string]: any;
}
export interface IDocValue {
    methodName?: string;
    hasAssigned?: boolean;
    name: string;
    title?: string;
    desc?: string[];
    kind?: string;
    type?: string;
    color?: string;
    syntax?: string[];
    detailedDesc?: IDetailedDesc[];
    fields?: IField[];
    members?: IField[];
    returns?: string[];
    remarks?: string | string[];
    seeAlso?: string[];
    args?: IArg[];
    examples?: string[];
    returnedTypes?: string[];
    originalName?: string;
    thisType?: string[];
    template?: boolean;
    info?: string;
    range?: IRange;
    isUser?: boolean;
    pos?: IPosition;
    scope?: number;
    isForVar?: boolean;
    hasMemberIndex?: boolean;
    declare?: string;
    valueType?: string;
    defaultValue?: any;
    index?: number;
    isImport?: boolean;
    importName?: string;
    hasRequest?: boolean;
    isEnumMember?: boolean;
    value?: string;
    selfArg?: IArg;
    disallowedInTemplate?: boolean;
    expectsTemplate?: boolean;
    realName?: string;
    isUserFields?: boolean;
    libraryInfoId?: string;
    isAddToBuiltIn?: boolean;
}
export interface IDetailedDesc {
    desc: string[];
    examples?: string[];
}
export interface IField {
    name: string;
    desc?: string;
    type?: string;
    originName?: string;
    isArg?: boolean;
    isVarip?: boolean;
    valueType?: string;
    varScope?: number;
    value?: string;
    enumName?: string;
    importName?: string;
}
export interface IArg {
    name: string;
    desc?: string;
    required?: boolean;
    allowedTypeIDs?: string[];
    displayType?: string;
    kind?: string;
}
export interface IImportLibrary {
    codeStr: string;
    description: string;
    functions: IDocValue[];
    types: IDocValue[];
    methods: IDocValue[];
    variables: IDocValue[];
    enums: IDocValue[];
    parserVersion: number;
}
export type IShapeRatioType = "D" | "M" | "NONE";
export {};
