import { CSSProperties, PropType } from 'vue';
import type { ExtractPublicPropTypes } from '../../_utils';
import type { ScrollTarget } from './utils';
export declare const affixProps: {
    readonly listenTo: PropType<string | ScrollTarget | (() => HTMLElement) | undefined>;
    readonly top: NumberConstructor;
    readonly bottom: NumberConstructor;
    readonly triggerTop: NumberConstructor;
    readonly triggerBottom: NumberConstructor;
    readonly position: {
        readonly type: PropType<"absolute" | "fix">;
        readonly default: "fix";
    };
    readonly offsetTop: {
        readonly type: PropType<number | undefined>;
        readonly validator: () => boolean;
        readonly default: undefined;
    };
    readonly offsetBottom: {
        readonly type: PropType<number | undefined>;
        readonly validator: () => boolean;
        readonly default: undefined;
    };
    readonly target: {
        readonly type: PropType<(() => HTMLElement) | undefined>;
        readonly validator: () => boolean;
        readonly default: undefined;
    };
};
export declare const affixPropKeys: ("bottom" | "top" | "position" | "target" | "listenTo" | "triggerTop" | "triggerBottom" | "offsetTop" | "offsetBottom")[];
export declare type AffixProps = ExtractPublicPropTypes<typeof affixProps>;
declare const _default: import("vue").DefineComponent<{
    readonly listenTo: PropType<string | ScrollTarget | (() => HTMLElement) | undefined>;
    readonly top: NumberConstructor;
    readonly bottom: NumberConstructor;
    readonly triggerTop: NumberConstructor;
    readonly triggerBottom: NumberConstructor;
    readonly position: {
        readonly type: PropType<"absolute" | "fix">;
        readonly default: "fix";
    };
    readonly offsetTop: {
        readonly type: PropType<number | undefined>;
        readonly validator: () => boolean;
        readonly default: undefined;
    };
    readonly offsetBottom: {
        readonly type: PropType<number | undefined>;
        readonly validator: () => boolean;
        readonly default: undefined;
    };
    readonly target: {
        readonly type: PropType<(() => HTMLElement) | undefined>;
        readonly validator: () => boolean;
        readonly default: undefined;
    };
}, {
    selfRef: import("vue").Ref<Element | null>;
    affixed: import("vue").ComputedRef<boolean>;
    mergedClsPrefix: import("vue").ComputedRef<string>;
    mergedstyle: import("vue").ComputedRef<CSSProperties>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
    position: "absolute" | "fix";
} & {
    bottom?: number | undefined;
    top?: number | undefined;
    target?: (() => HTMLElement) | undefined;
    listenTo?: string | ScrollTarget | (() => HTMLElement) | undefined;
    triggerTop?: number | undefined;
    triggerBottom?: number | undefined;
    offsetTop?: number | undefined;
    offsetBottom?: number | undefined;
}>, {
    position: "absolute" | "fix";
    target: (() => HTMLElement) | undefined;
    offsetTop: number | undefined;
    offsetBottom: number | undefined;
}>;
export default _default;
