import { CSSProperties, ExtractPropTypes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { AnchorLinkItemProps } from './AnchorLink';
import { VueTypeDef } from 'vue-types';
import { VueNode } from '../_util/type';
export type AnchorDirection = 'vertical' | 'horizontal';
export type AnchorContainer = HTMLElement | Window;
export declare const anchorProps: () => {
    prefixCls: StringConstructor;
    offsetTop: NumberConstructor;
    bounds: NumberConstructor;
    affix: {
        type: BooleanConstructor;
        default: boolean;
    };
    showInkInFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    getContainer: PropType<() => AnchorContainer>;
    wrapperClass: StringConstructor;
    wrapperStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    getCurrentAnchor: PropType<(activeLink: string) => string>;
    targetOffset: NumberConstructor;
    items: {
        type: PropType<AnchorLinkItemProps[]>;
        default: AnchorLinkItemProps[];
    };
    direction: VueTypeDef<AnchorDirection> & {
        default: AnchorDirection;
    };
    onChange: PropType<(currentActiveLink: string) => void>;
    onClick: PropType<(e: MouseEvent, link: {
        title: any;
        href: string;
    }) => void>;
};
export type AnchorProps = Partial<ExtractPropTypes<ReturnType<typeof anchorProps>>>;
export interface AnchorState {
    scrollContainer: HTMLElement | Window;
    links: string[];
    scrollEvent: any;
    animating: boolean;
}
declare const _default: DefineComponent<ExtractPropTypes<{
    prefixCls: StringConstructor;
    offsetTop: NumberConstructor;
    bounds: NumberConstructor;
    affix: {
        type: BooleanConstructor;
        default: boolean;
    };
    showInkInFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    getContainer: PropType<() => AnchorContainer>;
    wrapperClass: StringConstructor;
    wrapperStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    getCurrentAnchor: PropType<(activeLink: string) => string>;
    targetOffset: NumberConstructor;
    items: {
        type: PropType<AnchorLinkItemProps[]>;
        default: AnchorLinkItemProps[];
    };
    direction: VueTypeDef<AnchorDirection> & {
        default: AnchorDirection;
    };
    onChange: PropType<(currentActiveLink: string) => void>;
    onClick: PropType<(e: MouseEvent, link: {
        title: any;
        href: string;
    }) => void>;
}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    prefixCls: StringConstructor;
    offsetTop: NumberConstructor;
    bounds: NumberConstructor;
    affix: {
        type: BooleanConstructor;
        default: boolean;
    };
    showInkInFixed: {
        type: BooleanConstructor;
        default: boolean;
    };
    getContainer: PropType<() => AnchorContainer>;
    wrapperClass: StringConstructor;
    wrapperStyle: {
        type: PropType<CSSProperties>;
        default: CSSProperties;
    };
    getCurrentAnchor: PropType<(activeLink: string) => string>;
    targetOffset: NumberConstructor;
    items: {
        type: PropType<AnchorLinkItemProps[]>;
        default: AnchorLinkItemProps[];
    };
    direction: VueTypeDef<AnchorDirection> & {
        default: AnchorDirection;
    };
    onChange: PropType<(currentActiveLink: string) => void>;
    onClick: PropType<(e: MouseEvent, link: {
        title: any;
        href: string;
    }) => void>;
}>> & Readonly<{}>, {
    direction: AnchorDirection;
    items: AnchorLinkItemProps[];
    affix: boolean;
    showInkInFixed: boolean;
    wrapperStyle: CSSProperties;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
