import { Ref } from 'vue';
import { ApColumnTemplate, ApTableSettingType } from '..';
export declare const useTableTemplateStorage: (columnSetting: ApTableSettingType, persistenceKey: Ref<string | undefined>, onPersistenceKeyChange: (templateList: ApColumnTemplate[]) => void) => {
    basicTemplate: Ref<ApColumnTemplate | undefined, ApColumnTemplate | undefined>;
    customizeTemplateList: Ref<{
        columnState: {
            key: string | number;
            show?: boolean | undefined;
            fixed?: "left" | "right" | undefined;
            disabled?: boolean | undefined;
            label?: any;
            children?: /*elided*/ any[] | undefined;
            order?: number | undefined;
        }[];
        label: string;
        key: string;
        size?: "middle" | "small" | undefined;
    }[], ApColumnTemplate[] | {
        columnState: {
            key: string | number;
            show?: boolean | undefined;
            fixed?: "left" | "right" | undefined;
            disabled?: boolean | undefined;
            label?: any;
            children?: /*elided*/ any[] | undefined;
            order?: number | undefined;
        }[];
        label: string;
        key: string;
        size?: "middle" | "small" | undefined;
    }[]>;
    syncTemplateListToStorage: (nextTemplateList: ApColumnTemplate[]) => void;
    addTemplate: (template: ApColumnTemplate) => void;
    deleteTemplate: (key: string) => void;
    updateTemplate: (key: string, newTemplate: Partial<ApColumnTemplate>) => {
        columnState: {
            key: string | number;
            show?: boolean | undefined;
            fixed?: "left" | "right" | undefined;
            disabled?: boolean | undefined;
            label?: any;
            children?: /*elided*/ any[] | undefined;
            order?: number | undefined;
        }[];
        label: string;
        key: string;
        size?: "middle" | "small" | undefined;
    };
};
