import { type ComputedRef, type SetupContext } from 'vue';
import { type ApiDeleteFileParams, type ApiQueryFileListParams, type ApiUpdateFileNameAndLinkParams, type CardValidateCallback, type FileCardEmits, type FileCardProps } from '../types';
import { type FileActionUploadApiResponseRecord, type GlobalConfigFileProps } from '../../typings';
import { type UseRequestHandleApiDefaultOptions, type VersionCaches } from '../../hooks';
import { type ReturnOf } from '../../utils';
import { type UseCardActionsReturn } from './use-card-actions';
export declare function useMode(options: {
    mergedProps: ComputedRef<GlobalConfigFileProps & FileCardProps>;
    emits: SetupContext<FileCardEmits>['emit'];
    VersionCachesController: VersionCaches;
    handleApiDataSource: (params?: any) => Promise<void>;
    hasEmptyDataSource: ComputedRef<boolean>;
}): {
    apiActions: {
        rowEditorApiOptions: (apiParams: FileCardProps['apiParams'], changeEventPayload: Omit<ApiUpdateFileNameAndLinkParams, 'appId'>) => UseRequestHandleApiDefaultOptions<ApiUpdateFileNameAndLinkParams, FileActionUploadApiResponseRecord[]> | undefined;
        historyApiOptions: (apiParams: FileCardProps['apiParams'], file: FileActionUploadApiResponseRecord) => UseRequestHandleApiDefaultOptions<import("../../..").ApiQueryFileHistoryParams, FileActionUploadApiResponseRecord[]> | undefined;
        deleteApiOptions: (apiParams: FileCardProps['apiParams'], row: FileActionUploadApiResponseRecord) => UseRequestHandleApiDefaultOptions<Omit<ApiDeleteFileParams, "actualIds"> & {
            actualIds?: string[] | undefined;
        }, FileActionUploadApiResponseRecord[]> | undefined;
    };
    dataActions: {
        reloadRows: (params?: Partial<ApiQueryFileListParams> | undefined) => Promise<void>;
        editRow: (changeEventPayload: Omit<ApiUpdateFileNameAndLinkParams, 'appId'>, _row: FileActionUploadApiResponseRecord, cardUpdateRows: UseCardActionsReturn['cardUpdateRows'], editRowApiAction: (...args: any[]) => Promise<any>, hasEmptyDataSource: ComputedRef<boolean>, refreshCardDataApiAction: (params?: Partial<ApiQueryFileListParams> | undefined) => Promise<void>) => Promise<void>;
        updateRow: (_row: FileActionUploadApiResponseRecord, _clickedRow: FileActionUploadApiResponseRecord, cardUpdateRows: UseCardActionsReturn['cardUpdateRows'], hasEmptyDataSource: ComputedRef<boolean>, refreshCardDataApiAction: (params?: Partial<ApiQueryFileListParams> | undefined) => Promise<void>) => Promise<void>;
        deleteRow: (_clickedRow: FileActionUploadApiResponseRecord, cardDeleteRows: UseCardActionsReturn['cardDeleteRows'], deleteRowApiAction: () => Promise<void>, hasEmptyDataSource: ComputedRef<boolean>, refreshCardDataApiAction: (params?: Partial<ApiQueryFileListParams> | undefined) => Promise<void>, validate: (trigger: string, callback?: CardValidateCallback | undefined) => Promise<boolean>) => Promise<void>;
    };
};
export declare type UseModeReturn = ReturnOf<typeof useMode>;
