/**
 * Copyright IBM Corp. 2024, 2025
 */
import { FileAccessType } from '../../api-authoring/interfaces/api-spec-handler.interface.js';
import { APICFileInfo } from '../../apic-mode/models/apic-file-info.model.js';
import { EditorTab } from '../../common/models/editor-tab.model.js';
import { FileExplorerNode } from '../../common/models/file-explorer.model.js';
import { IlintResponse } from '../../common/models/lint-response.model.js';
import { VCSFileInfo } from '../../vcs/models/vcs-file-info.model.js';
type NestedHashMap = {
    [key: string]: string;
};
type HashMap = {
    [key: string]: NestedHashMap;
};
type EditorState = {
    editorId: number;
    hm: HashMap;
    activeTab: EditorTab | -1;
    tabs: EditorTab[];
    fileExplorerInfo: {
        selectedNode: FileExplorerNode | null;
    };
};
type EditorAction = {
    initialize: (editorId: number, activeTab: EditorTab | -1, tabs: EditorTab[], hm: HashMap) => void;
    loadDataFromIndexedDb: () => Promise<void>;
    openFile: (file: FileSystemFileHandle, directoryHandle: FileSystemDirectoryHandle, index?: number, lineNumber?: number) => Promise<void>;
    removeFile: (id: number) => Promise<number>;
    renameFile: (oldFileTabId: number, oldFileName: string, newFile: FileAccessType) => Promise<void>;
    saveFile: (fileHandle: FileSystemFileHandle | VCSFileInfo | APICFileInfo, fileContent: string) => Promise<boolean>;
    changeLine: (value: number, column: number) => void;
    setActiveTab: (editorTab: EditorTab) => void;
    reset: () => void;
    openVCSFile: (fileInfo: VCSFileInfo, lineNumber?: number) => Promise<void>;
    updateLintResult: (lintResponse: IlintResponse[]) => void;
    resetActiveTab: (tab?: EditorTab) => void;
    getEditorId: (file: FileSystemFileHandle | VCSFileInfo | APICFileInfo) => number;
    updateTabsOnFormSave: (file: FileSystemFileHandle | VCSFileInfo | APICFileInfo) => Promise<void>;
    updateTab: (file: FileSystemFileHandle | VCSFileInfo | APICFileInfo) => Promise<void>;
    setFileExplorerInfo: (node: FileExplorerNode | null) => void;
    readFile: (file: FileSystemFileHandle | VCSFileInfo | APICFileInfo, directoryHandle: FileSystemDirectoryHandle, isVCSFile: boolean) => Promise<{
        filePath: string;
        content?: any;
    } | undefined>;
    openAPICFile: (fileInfo: APICFileInfo, lineNumber?: number) => Promise<void>;
};
export type EditorStore = EditorState & EditorAction;
export {};
//# sourceMappingURL=editor.store.model.d.ts.map