interface FilesOptions {

    defaultHeaders?: { [key: string]: string };
    headers?: { [key: string]: string };

    //-- Asset Manager
    listFilesUrl?: string;
    listFoldersUrl?: string;
    deleteFilesUrl?: string;
    moveFilesUrl?: string;
    createFolderUrl?: string;
    checkFilesUrl?: string;
    uploadFilesUrl?: string;
    renameFileUrl?: string;
    getMmodelsUrl?: string;
    textToImageUrl?: string;
    upscaleImageUrl?: string;
    controlNetUrl?: string;
    saveTextUrl?: string;
    viewUrl?: string;
    viewFileUrl?: string;
    assetFolderTree?: boolean;
    assetFilesOnly?: boolean;
    assetPanelReverse?: boolean;
    assetRefreshButton?: boolean;
    assetAllowedFileTypes?: any[]; 
    assetShowRelativeTime?: boolean;
    assetLocale?: string;
    assetDateShortOptions?: any[]; 
    assetDateLongOptions?: any[];
    // assetPanelFullScreen?: boolean;

    // panelFullScreen?: boolean;
    folderTree?: boolean;
    panelReverse?: boolean;
    filesOnly?: boolean;
    refreshButton?: boolean;
    allowedFileTypes?: any[]; 
    showRelativeTime?: boolean;
    locale?: string;
    dateShortOptions?: Record<string, any>;
    dateLongOptions?: Record<string, any>;
    filePicker?: boolean;
    modalInIframe?: boolean;
    onSelect?: (url: string, e?: any) => void;
    onCancel?: () => void;
        
    //-- Media Generation (new feature)
    mediaGenerationMode?: string; // getimg or custom

    //-- Form Viewer
    model?: string;
    model2?: string;
    sendCommandUrl?: string;
    uploadMediaUrl_Fal?: string;
    uploadBase64Url_Fal?: string;
    generateMediaUrl_Fal?: string;
    checkRequestStatusUrl_Fal?: string;
    getResultUrl_Fal?: string;
    minimizeImageUrl?: string;
    cleanup?: string;
    generateMediaUrl_OpenAI_CreateImage?: string;
    generateMediaUrl_OpenAI_CreateImageEdit?: string;
    generateMediaUrl_Google?: string;
    assetsFolder?: string;
    templatesUrl?: string;
    templateFilters?: any[]; 
    templatesConfig?: Record<string, any>;
    defaultFormTemplate?: Record<string, any>;
    defaultWorkflowTemplate?: Record<string, any>;
    //---
    demoMode?: boolean;
}

declare class Files {
    constructor(element: HTMLElement, options: FilesOptions);
    reset(): void;
    destroy(): void;
}
export default Files;