import { SetupContext } from 'vue';
import { AttributeFilterProps, AttributeFilterEmits } from './types';
import { LayerService } from '@mapgis/webclient-vue3-common-utils';
export declare const useAttributeFilter: (props: AttributeFilterProps, emit: SetupContext<AttributeFilterEmits>['emit'], layerSelectRef: any) => {
    layerService: import('@vue/reactivity').ShallowRef<LayerService, LayerService>;
    attributeFilterLayerTitlePair: import('@vue/reactivity').ComputedRef<{
        title: any;
        tip: any;
    }>;
    attributeFilterEnabled: import('@vue/reactivity').ComputedRef<boolean>;
    showLayerSelect: import('@vue/reactivity').ComputedRef<boolean>;
    isConditionSearch: import('@vue/reactivity').ComputedRef<boolean>;
    isFeatureIdSearch: import('@vue/reactivity').ComputedRef<boolean>;
    clearState: () => void;
    apply: () => void;
    reset: () => void;
    handleLayerSelectChange: () => void;
    handleAddExpression: () => void;
    handleAddExpressionGroup: () => void;
    handleDeleteExpression: (index: any) => void;
    handleClearExpressions: () => void;
    selectedLayerId: import('@vue/reactivity').Ref<string, string>;
    layerId: import('@vue/reactivity').Ref<string, string>;
    sublayerId: import('@vue/reactivity').Ref<string, string>;
    filterExpression: import('@vue/reactivity').Ref<string, string>;
    compoundExpression: import('@vue/reactivity').Ref<{
        type: "compound";
        operator: "AND" | "OR";
        expressions?: ({
            id: string;
            type: "base";
            field?: string;
            operator?: string;
            value?: string | number | [number, number];
            valueType?: "field" | "literal";
        } | {
            id: string;
            type: "group";
            operator: "AND" | "OR";
            expressions?: ({
                id: string;
                type: "base";
                field?: string;
                operator?: string;
                value?: string | number | [number, number];
                valueType?: "field" | "literal";
            } | any)[];
            activeId?: string;
        })[];
        activeId?: string;
    }, {
        type: "compound";
        operator: "AND" | "OR";
        expressions?: ({
            id: string;
            type: "base";
            field?: string;
            operator?: string;
            value?: string | number | [number, number];
            valueType?: "field" | "literal";
        } | {
            id: string;
            type: "group";
            operator: "AND" | "OR";
            expressions?: ({
                id: string;
                type: "base";
                field?: string;
                operator?: string;
                value?: string | number | [number, number];
                valueType?: "field" | "literal";
            } | any)[];
            activeId?: string;
        })[];
        activeId?: string;
    }>;
    fields: import('@vue/reactivity').Ref<any[], any[]>;
    layerTypes: import('@vue/reactivity').Ref<any[], any[]>;
    sublayerTypes: import('@vue/reactivity').Ref<any[], any[]>;
    featureIds: import('@vue/reactivity').Ref<number[], number[]>;
    valueOptions: import('@vue/reactivity').Ref<any[], any[]>;
    searchType: import('@vue/reactivity').Ref<string, string>;
};
