import { EditorFileData, FileData } from '../../api';
import { TemplateResult } from '@blinkk/selective-edit';
import { FormDialogModal } from '../../ui/modal';
import { MenuSectionPart, MenuSectionPartConfig } from './index';
import { DataStorage } from '../../../utility/dataStorage';
import { LiveEditor } from '../../..';
interface DirectoryEventHandlers {
    fileCopy: (evt: Event, file: FileData) => void;
    fileDelete: (evt: Event, file: FileData) => void;
    fileLoad: (evt: Event, file: FileData) => void;
    fileNew: (evt: Event, directory: string) => void;
    render: () => void;
}
export declare class SitePart extends MenuSectionPart {
    fileStructure?: DirectoryStructure;
    constructor(config: MenuSectionPartConfig);
    classesForPart(): Record<string, boolean>;
    protected getOrCreateModalCopy(editor: LiveEditor): FormDialogModal;
    protected getOrCreateModalDelete(editor: LiveEditor): FormDialogModal;
    protected getOrCreateModalNew(editor: LiveEditor): FormDialogModal;
    loadFiles(): void;
    loadProject(): void;
    templateContent(editor: LiveEditor): TemplateResult;
    templateFileCopy(editor: LiveEditor): TemplateResult;
    templateFileDelete(editor: LiveEditor): TemplateResult;
    templateFileNew(editor: LiveEditor): TemplateResult;
    templateTitle(editor: LiveEditor): TemplateResult;
    get title(): string;
}
declare class DirectoryStructure {
    rootFiles: Array<FileData>;
    root: string;
    directories: Record<string, DirectoryStructure>;
    eventHandlers: DirectoryEventHandlers;
    files: Array<FileData>;
    isExpanded?: boolean;
    storage: DataStorage;
    constructor(rootFiles: Array<FileData>, eventHandlers: DirectoryEventHandlers, storage: DataStorage, root?: string);
    get base(): string;
    baseFromFilePath(file: FileData): string;
    expandToFile(file: EditorFileData): void;
    handleExpandCollapse(): void;
    template(editor: LiveEditor): TemplateResult;
    templateDirectories(editor: LiveEditor): TemplateResult;
    templateFiles(editor: LiveEditor): TemplateResult;
}
export {};
