import type { PropType } from 'vue';
import type { MaPaginationLimit, MaPaginationMode, MaPaginationSize } from './types';
export interface MaPaginationProps {
    mode?: MaPaginationMode;
    size?: MaPaginationSize;
    /**
     * Full radius or not.
     */
    rounded?: boolean;
    /**
     * Number of current page.
     */
    current?: number;
    /**
     * Number of items per page.
     */
    perPage?: number;
    /**
     * Total number of items.
     */
    totalItems?: number;
    /**
     * The object must contain the xs, sm, md, lg, and default keys.
     */
    limits?: MaPaginationLimit;
    /**
     * Number of items to display per page.
     */
    pageSizeOptions?: number[];
    /**
     * Show or hide the Prev / Next navigation buttons. Default true.
     */
    showPrevNext?: boolean;
    disabled?: boolean;
}
declare var __VLS_1: {};
type __VLS_Slots = {} & {
    totalText?: (props: typeof __VLS_1) => any;
};
declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    mode: {
        type: PropType<MaPaginationMode>;
        required: false;
        default: string;
    };
    size: {
        type: PropType<MaPaginationSize>;
        required: false;
        default: string;
    };
    rounded: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    current: {
        type: NumberConstructor;
        required: false;
        default: number;
        validator(value: number): boolean;
    };
    perPage: {
        type: NumberConstructor;
        required: false;
        default: number;
        validator(value: number): boolean;
    };
    totalItems: {
        type: NumberConstructor;
        required: false;
        default: number;
    };
    limits: {
        type: PropType<MaPaginationLimit>;
        required: false;
        default: () => {
            xs: number;
            sm: number;
            md: number;
            lg: number;
            default: number;
        };
        validator: (value: MaPaginationLimit) => boolean;
    };
    pageSizeOptions: {
        type: PropType<number[]>;
        required: false;
        default: () => number[];
    };
    showPrevNext: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    change: (...args: any[]) => void;
    "update:current": (...args: any[]) => void;
    "update:perPage": (...args: any[]) => void;
    perPageChange: (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    mode: {
        type: PropType<MaPaginationMode>;
        required: false;
        default: string;
    };
    size: {
        type: PropType<MaPaginationSize>;
        required: false;
        default: string;
    };
    rounded: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    current: {
        type: NumberConstructor;
        required: false;
        default: number;
        validator(value: number): boolean;
    };
    perPage: {
        type: NumberConstructor;
        required: false;
        default: number;
        validator(value: number): boolean;
    };
    totalItems: {
        type: NumberConstructor;
        required: false;
        default: number;
    };
    limits: {
        type: PropType<MaPaginationLimit>;
        required: false;
        default: () => {
            xs: number;
            sm: number;
            md: number;
            lg: number;
            default: number;
        };
        validator: (value: MaPaginationLimit) => boolean;
    };
    pageSizeOptions: {
        type: PropType<number[]>;
        required: false;
        default: () => number[];
    };
    showPrevNext: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
    disabled: {
        type: BooleanConstructor;
        required: false;
        default: boolean;
    };
}>> & Readonly<{
    onChange?: (...args: any[]) => any;
    "onUpdate:current"?: (...args: any[]) => any;
    "onUpdate:perPage"?: (...args: any[]) => any;
    onPerPageChange?: (...args: any[]) => any;
}>, {
    rounded: boolean;
    size: "small" | "medium" | "large";
    mode: "simple" | "advanced";
    disabled: boolean;
    current: number;
    perPage: number;
    totalItems: number;
    limits: MaPaginationLimit;
    pageSizeOptions: number[];
    showPrevNext: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
