import { SetupContext } from 'vue';
import { VxeTableColumnEmits, VxeTableColumnProps } from './vxe-table-column';
import { ColRecord } from './utils';
export declare function useVxeTableColumn(props: VxeTableColumnProps, emit?: SetupContext<VxeTableColumnEmits>['emit']): {
    ctx: {
        columnSlotStubRef: import('vue').Ref<any, any>;
        type: import('vue').ComputedRef<NonNullable<import("vxe-pc-ui").VxeColumnPropTypes.Type> | "index" | "selection">;
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any>;
        }>;
        elColumnProps: import('vue').ComputedRef<Record<string, any>>;
        aColumnProps: import('vue').ComputedRef<Record<string, any>>;
        vxeColumnProps: import('vue').ComputedRef<VxeTableColumnProps>;
        reserveSelection: import('vue').ComputedRef<any>;
        className: import('vue').ComputedRef<string>;
        labelClassName: import('vue').ComputedRef<string>;
        visible: import('vue').Ref<import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>, import('@yanzhen-libs/utils-vue').EpPropMergeType<BooleanConstructor, unknown, unknown>>;
        isElTableTag: import('vue').ComputedRef<boolean>;
        isATableTag: import('vue').ComputedRef<boolean>;
    };
    methods: {
        isEditByRow: ({ row }: ColRecord) => boolean;
        isHiddenByRow: (record: ColRecord, name?: string) => boolean;
    };
};
