import { FileFolderType, IEditor, IFileInfo, ITabFlags, ITab } from '@ws-ui/shared';
export interface ITreeItem {
    id?: string;
    name: string;
    path: string;
    children?: ITreeItem[];
    type: FileFolderType;
    date?: string;
    size?: number;
    ext?: string;
    error: null | {
        message: string;
    };
    flags: {
        [key: string]: boolean;
    };
    tipKey?: string;
    config: {
        editor?: IEditor;
        supportedEditors?: IEditor[];
    };
    isRoot?: boolean;
    info?: {
        [key: string]: any;
    };
}
export interface INodePermissions {
    canRemove: boolean;
    canAdd: boolean;
    canMove: boolean;
    canRename: boolean;
    canDownload: boolean;
    canUpload: boolean;
    canReload: boolean;
    canAddFolder: boolean;
    canDuplicate: boolean;
    canDrag: boolean;
    canDragIn: boolean;
    canTerminate: boolean;
    canRender: boolean;
    canExecute: boolean;
}
export interface INodeFlags {
    hidden: boolean;
    disabled: boolean;
}
export interface INodeAttributes {
    flags: Partial<INodeFlags>;
    permissions: Partial<INodePermissions>;
    depth?: number;
}
export interface IEditors {
    pattern: string;
    editor: IEditor;
    supportedEditors?: IEditor[];
}
export interface IOpenFilePayload {
    file: IFileInfo;
    inactive?: boolean;
    isNew?: boolean;
    flags?: Pick<ITabFlags, 'enabled' | 'loading' | 'pinned' | 'confirmed'>;
    info?: {
        [key: string]: string;
    };
}
export interface ISwitchEditorPayload {
    tab: ITab;
    editor: IEditor;
}
export declare const editors: IEditors[];
export declare const extensions: {
    pattern: string;
    type: 'json' | 'text';
}[];
