import { FileFolderType, IFileInfo } from './api';
import { IMethodAttributes, ITextEditorSelection } from './code-editor';
import { IEditor } from './explorer';
import { ISource, DebuggerFileExtension } from './debugger';
export type ITabFlags = Partial<{
    touched: boolean;
    removed: boolean;
    pinned: boolean;
    loading: boolean;
    old: boolean;
    enabled: boolean;
    confirmed: boolean;
    inactive: boolean;
}>;
export interface IEditorTab<T = string> {
    path: string;
    type?: FileFolderType;
    content: T;
    extra?: ITabExtra;
    language?: string;
    theme?: string;
    name?: string;
}
export type ITabExtra = Partial<{
    initialLineInfo: {
        line: number;
        offset?: number;
        lastModification: number;
    };
    initialSelectionInfo: {
        selection: ITextEditorSelection;
        lastModification: number;
    };
    diffContent: string;
    attributes: IMethodAttributes;
    source: ISource;
    editor: IEditor;
    ext: DebuggerFileExtension;
    kind: string;
    eventReportView: 'full' | 'compact';
    eventReportFilters: string[];
}>;
export interface ITab<T = any, G = ITabExtra> extends IFileInfo {
    content?: T;
    history?: {
        stack: T[];
        active: number;
        locked: boolean;
    };
    weight?: number;
    prefix?: string;
    extra?: G;
    view: {
        panel: {
            isOpen: boolean;
            type: string;
            current: string;
            lastSelected?: string;
            issueID?: string;
        };
    };
    flags: ITabFlags;
    initialContent?: T;
}
export type WebformTab = ITab<webforms.Content>;
export interface IAppState {
    files: IFileInfo[];
    tabs: ITab[];
    activeTab: string;
}
export declare enum ERROR_CODES {
    FILE_NOT_FOUND = 1839,
    JSON_MALFORMED = 554,
    JSON_MALFORMED_AT_LINE = 550
}
export interface GetNodeInfoException {
    data: {
        __ERROR: [
            {
                errCode: number;
            }
        ];
    };
}
