import { FileFolderType, IFileInfo, ISaveFileResponse, ISetFileContentResponse, ITab, ITextEditorSelection, ICreateNewFilePayload, ITreeItem } from '@ws-ui/shared';
import { ClassFileTypes } from '../root/types';
import { AppState } from '..';
import { ISettingsState } from '../settings';
import { IOpenFilePayload, ISwitchEditorPayload } from './types';
export declare function getDefaultContent(root: FileFolderType, projectSettings: ISettingsState['project']): any;
export declare function castToFileFolder(type: string): FileFolderType;
export declare function getFileType(root: FileFolderType): FileFolderType;
export declare const tryEditMethod: import('@reduxjs/toolkit').AsyncThunk<ITab<any, Partial<{
    initialLineInfo: {
        line: number;
        offset?: number;
        lastModification: number;
    };
    initialSelectionInfo: {
        selection: ITextEditorSelection;
        lastModification: number;
    };
    diffContent: string;
    attributes: import('@ws-ui/shared').IMethodAttributes;
    source: import('@ws-ui/shared').ISource;
    editor: import('@ws-ui/shared').IEditor;
    ext: import('@ws-ui/shared').DebuggerFileExtension;
    kind: string;
    eventReportView: "full" | "compact";
    eventReportFilters: string[];
}>>, {
    method: catalog.IMethod;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
type TCreateModelFilesPayloadDataclass = {
    type: 'dataclass';
    className: string;
    collectionName: string;
    toCreate?: ClassFileTypes;
    expand?: boolean;
};
export type TCreateModelFilesPayload = TCreateModelFilesPayloadDataclass | {
    type: 'model';
};
export declare const createModelFiles: import('@reduxjs/toolkit').AsyncThunk<void, TCreateModelFilesPayload, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchFolderContent: import('@reduxjs/toolkit').AsyncThunk<ITreeItem[], string | {
    nodePath: string;
    expandDataclass?: string;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchClassesFolderContent: import('@reduxjs/toolkit').AsyncThunk<ITreeItem[], void, {
    state?: unknown;
    dispatch?: import('redux').Dispatch;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchFolderContentWithoutExpanding: import('@reduxjs/toolkit').AsyncThunk<ITreeItem[], string | {
    nodePath: string;
    collapseIfExpanded?: boolean;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const uploadFileAndGetResponse: import('@reduxjs/toolkit').AsyncThunk<{
    status: number;
    data: unknown;
}, File, {
    state?: unknown;
    dispatch?: import('redux').Dispatch;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const uploadFile: import('@reduxjs/toolkit').AsyncThunk<{
    status: number;
    fileName: string;
}, {
    file: File;
    path: string;
    parentNode: ITreeItem;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const createNewFile: import('@reduxjs/toolkit').AsyncThunk<{
    qodly: boolean;
    file: ISetFileContentResponse;
    parentNode: ITreeItem;
}, ICreateNewFilePayload, {
    state: AppState;
    rejectValue: string;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
/**
 * Returns the file path of the given file object based on its type.
 *
 * @param {ISaveFileResponse} file - The file object to get the path for.
 * @param {Partial<{ withExtension: boolean; qodly: boolean }>} [options] - Optional parameters object.
 * @param {boolean} [options.withExtension=true] - Whether to include the file extension in the path.
 * @param {boolean} [options.qodly=true] - Whether to use the qodly file extension instead of the standard one.
 * @return {string} The file path with or without extension, based on the options.
 */
export declare function getFilePath(file: ISaveFileResponse, options?: Partial<{
    withExtension: boolean;
    qodly: boolean;
}>): string;
export declare const createNewFileAndOpen: import('@reduxjs/toolkit').AsyncThunk<void, ICreateNewFilePayload, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const createNewNode: import('@reduxjs/toolkit').AsyncThunk<{
    file: import('@ws-ui/shared').IAddFolderResponse;
    parentNode: ITreeItem;
}, {
    fileName: string;
    type: FileFolderType;
    path: string;
    parentNode: ITreeItem;
}, {
    state?: unknown;
    dispatch?: import('redux').Dispatch;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchHTTPHandlers: import('@reduxjs/toolkit').AsyncThunk<void, void, {
    state: AppState;
    rejectValue: string;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const openFileFromLocation: import('@reduxjs/toolkit').AsyncThunk<void, void, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const switchEditor: import('@reduxjs/toolkit').AsyncThunk<void, ISwitchEditorPayload, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const openFile: import('@reduxjs/toolkit').AsyncThunk<ITab<any, Partial<{
    initialLineInfo: {
        line: number;
        offset?: number;
        lastModification: number;
    };
    initialSelectionInfo: {
        selection: ITextEditorSelection;
        lastModification: number;
    };
    diffContent: string;
    attributes: import('@ws-ui/shared').IMethodAttributes;
    source: import('@ws-ui/shared').ISource;
    editor: import('@ws-ui/shared').IEditor;
    ext: import('@ws-ui/shared').DebuggerFileExtension;
    kind: string;
    eventReportView: "full" | "compact";
    eventReportFilters: string[];
}>> | null, IOpenFilePayload, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const openFileAtLine: import('@reduxjs/toolkit').AsyncThunk<ITab<any, Partial<{
    initialLineInfo: {
        line: number;
        offset?: number;
        lastModification: number;
    };
    initialSelectionInfo: {
        selection: ITextEditorSelection;
        lastModification: number;
    };
    diffContent: string;
    attributes: import('@ws-ui/shared').IMethodAttributes;
    source: import('@ws-ui/shared').ISource;
    editor: import('@ws-ui/shared').IEditor;
    ext: import('@ws-ui/shared').DebuggerFileExtension;
    kind: string;
    eventReportView: "full" | "compact";
    eventReportFilters: string[];
}>>, {
    file: IFileInfo;
    line: number;
    offset?: number;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const injectContentAtLine: import('@reduxjs/toolkit').AsyncThunk<{
    path: string;
    content: string;
    line: number;
}, {
    path: string;
    content: string;
    line: number;
}, {
    state?: unknown;
    dispatch?: import('redux').Dispatch;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export interface IOpenFileAtSelectionPayload {
    file: IFileInfo;
    selection: ITextEditorSelection;
}
export declare const openFileAtSelection: import('@reduxjs/toolkit').AsyncThunk<ITab<any, Partial<{
    initialLineInfo: {
        line: number;
        offset?: number;
        lastModification: number;
    };
    initialSelectionInfo: {
        selection: ITextEditorSelection;
        lastModification: number;
    };
    diffContent: string;
    attributes: import('@ws-ui/shared').IMethodAttributes;
    source: import('@ws-ui/shared').ISource;
    editor: import('@ws-ui/shared').IEditor;
    ext: import('@ws-ui/shared').DebuggerFileExtension;
    kind: string;
    eventReportView: "full" | "compact";
    eventReportFilters: string[];
}>>, IOpenFileAtSelectionPayload, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const deleteFile: import('@reduxjs/toolkit').AsyncThunk<{
    deleted: boolean;
    node: ITreeItem;
}, ITreeItem, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const deleteFolder: import('@reduxjs/toolkit').AsyncThunk<{
    deleted: boolean;
    node: ITreeItem;
}, ITreeItem, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const removeFileNode: import('@reduxjs/toolkit').AsyncThunk<{
    deleted: boolean;
    node: ITreeItem;
}, ITreeItem, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const renameFile: import('@reduxjs/toolkit').AsyncThunk<{
    old: ITreeItem;
    new: ITreeItem;
}, {
    file: ITreeItem;
    newname: string;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const relocateNode: import('@reduxjs/toolkit').AsyncThunk<void, {
    draggedNode: ITreeItem;
    newLocation: ITreeItem;
}, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const duplicateNode: import('@reduxjs/toolkit').AsyncThunk<any, any, {
    state: AppState;
    extra?: unknown;
    dispatch?: import('redux').Dispatch | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const executeMethod: import('@reduxjs/toolkit').AsyncThunk<void | {
    [refName: string]: datasources.IComponentAction;
}, {
    methodName: string;
    namespace?: string;
    params?: {
        name: string;
        namespace?: string;
        isHardCoded?: boolean;
        type?: "string" | "number" | "object" | "date" | "array" | "bool" | undefined;
    }[];
    resultingDataSource?: {
        id?: string;
        namespace?: string;
    };
}, {
    state?: unknown;
    dispatch?: import('redux').Dispatch;
    extra?: unknown;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export {};
