import { SetupContext } from 'vue';
import { LayerAttributeProps, LayerAttributeEmits } from './types';
interface UIConfigItem {
    label: string;
    type: string;
    field?: string;
    [key: string]: any;
}
interface UIConfig {
    [key: string]: UIConfigItem;
}
export declare const useLayerAttribute: (props: LayerAttributeProps, emit: SetupContext<LayerAttributeEmits>['emit'], layerSelectRef: any) => {
    showLayerSelect: import('@vue/reactivity').ComputedRef<boolean>;
    showOpacity: import('@vue/reactivity').ComputedRef<boolean>;
    pictureFormatOptions: import('@vue/reactivity').ComputedRef<any[]>;
    layerTypes: any[];
    sublayerTypes: any[];
    lengthUnitOptions: {
        key: string;
        value: any;
    }[];
    elevationInfoModeOptions: {
        key: string;
        value: any;
    }[];
    subDomainColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    bandIdsColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    lodsColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    headersColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    outFieldsColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    extendPropsColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    extensionOptionsColumns: {
        title: string;
        dataIndex: string;
        key: string;
        align: string;
        width: string;
    }[];
    tileDisplayStrategyOptions: {
        key: string;
        value: string;
    }[];
    tileDisplaLodsColumns: {
        title: string;
        dataIndex: string;
        width: string;
        key: string;
    }[];
    changeLayerAttribute: (field: any) => void;
    changeElevationInfo: () => void;
    changeExtent: () => void;
    changeSubDomains: () => void;
    addSubDomain: () => void;
    deleteSubDomain: (index: any) => void;
    changeBandIds: () => void;
    addeBandId: () => void;
    deleteBandId: (index: any) => void;
    deleteLOD: (levelValue: any) => void;
    addeLOD: () => void;
    changeLODs: () => void;
    addHeader: () => void;
    deleteHeader: (id: any) => void;
    changeHeaders: () => void;
    addOutField: () => void;
    deleteOutField: (id: any) => void;
    changeOutFields: () => void;
    addExtendProp: () => void;
    deleteExtendProp: (id: any) => void;
    changeExtendProps: () => void;
    addExtensionOption: () => void;
    deleteExtensionOption: (id: any) => void;
    changeExtensionOptions: () => void;
    changeTileInfo: () => void;
    changeActiveLayer: (sublayerId: any) => void;
    getSelectConfigs: (config: any, layerInfo: any) => any;
    changeShowLevelRange: (showLevelRange: number[]) => void;
    getTextColorByLevel: (level: number) => string;
    isSupportTileDisplayStrategy: (type: string) => boolean;
    layerInfo: import('@vue/reactivity').Ref<any, any>;
    layerTitlePair: import('@vue/reactivity').Ref<{
        title: string;
        tip: string;
    }, {
        title: string;
        tip: string;
    }>;
    subDomainsDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    bandIdsDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    lodsDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    headersDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    outFieldsDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    extendPropsDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    extensionOptionsDataSource: import('@vue/reactivity').Ref<any[], any[]>;
    checkedLayerId: import('@vue/reactivity').Ref<string, string>;
    showLevelRange: import('@vue/reactivity').Ref<number[], number[]>;
    labelUIConfig: import('@vue/reactivity').Ref<UIConfig, UIConfig>;
    booleanUIConfig: import('@vue/reactivity').Ref<UIConfig, UIConfig>;
    selectUIConfig: import('@vue/reactivity').Ref<UIConfig, UIConfig>;
    activeLayerUIConfig: import('@vue/reactivity').Ref<UIConfig, UIConfig>;
    opacityUIConfig: import('@vue/reactivity').Ref<UIConfig, UIConfig>;
    collapseUIConfig: import('@vue/reactivity').Ref<UIConfig, UIConfig>;
};
export {};
