import { VueNode } from "../_util/type.js"; import { SemanticClassNamesType, SemanticStylesType } from "../_util/hooks/useMergeSemantic.js"; import "../_util/hooks/index.js"; import { SizeType } from "../config-provider/SizeContext.js"; import { SelectProps } from "../select/index.js"; import { CSSProperties, Component } from "vue"; import { PaginationProps as PaginationProps$1 } from "@v-c/pagination"; //#region src/pagination/interface.d.ts interface PaginationLocale { items_per_page?: string; jump_to?: string; jump_to_confirm?: string; page?: string; prev_page?: string; next_page?: string; prev_5?: string; next_5?: string; prev_3?: string; next_3?: string; page_size?: string; } type SemanticName = keyof PaginationSemanticClassNames & keyof PaginationSemanticStyles; type PaginationSemanticName = SemanticName; interface PaginationSemanticClassNames { root?: string; item?: string; } interface PaginationSemanticStyles { root?: CSSProperties; item?: CSSProperties; } type PaginationClassNamesType = SemanticClassNamesType; type PaginationStylesType = SemanticStylesType; interface PaginationSizeChangerProps { /** Current `pageSize` */ value: number; /** Whether the pagination is disabled */ disabled: boolean; /** * Emitted as the `change` event when the user picks another page size. * Also accepted as an `onChange` prop. */ onChange?: (value: number) => void; /** Injected through attrs, `ant-pagination-options-size-changer` */ class?: string; } interface PaginationComponents { sizeChanger?: Component; } interface PaginationProps extends Omit { showQuickJumper?: boolean | { goButton?: VueNode; }; size?: SizeType; responsive?: boolean; totalBoundaryShowSizeChanger?: number; rootClass?: string; components?: PaginationComponents; showSizeChanger?: boolean | SelectProps; pageSizeOptions?: (string | number)[]; classes?: PaginationClassNamesType; styles?: PaginationStylesType; locale?: PaginationLocale; prevIcon?: VueNode; nextIcon?: VueNode; jumpPrevIcon?: VueNode; jumpNextIcon?: VueNode; /** @deprecated Not official support. Will be removed in next major version. */ selectComponentClass?: any; } type PaginationPosition = 'top' | 'bottom' | 'both'; interface PaginationConfig extends Omit { position?: PaginationPosition; } interface PaginationEmits { 'change': (page: number, pageSize: number) => void; 'showSizeChange': (current: number, size: number) => void; 'update:current': (page: number) => void; 'update:pageSize': (size: number) => void; } interface PaginationSlots { itemRender?: (ctx: { page: number; type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next'; element: VueNode; }) => any; showTotal?: (ctx: { total: number; range: [number, number]; }) => any; prevIcon?: () => any; nextIcon?: () => any; jumpPrevIcon?: () => any; jumpNextIcon?: () => any; } //#endregion export { PaginationClassNamesType, PaginationComponents, PaginationConfig, PaginationEmits, PaginationLocale, PaginationPosition, PaginationProps, PaginationSemanticClassNames, PaginationSemanticName, PaginationSemanticStyles, PaginationSizeChangerProps, PaginationSlots, PaginationStylesType, SemanticName };