import { VueNode } from "../_util/type.js"; import { SemanticClassNamesType, SemanticStylesType } from "../_util/hooks/useMergeSemantic.js"; import { Orientation } from "../_util/hooks/useOrientation.js"; import "../_util/hooks/index.js"; import { SizeType } from "../config-provider/SizeContext.js"; import { TooltipProps } from "../tooltip/index.js"; import * as vue677 from "vue"; import { App, CSSProperties, SlotsType } from "vue"; import { SegmentedLabeledOption as SegmentedLabeledOption$1, SegmentedProps as SegmentedProps$1, SegmentedRawOption, SegmentedValue } from "@v-c/segmented"; //#region src/segmented/index.d.ts type SegmentedSemanticName = keyof SegmentedSemanticClassNames & keyof SegmentedSemanticStyles; interface SegmentedSemanticClassNames { root?: string; icon?: string; label?: string; item?: string; } interface SegmentedSemanticStyles { root?: CSSProperties; icon?: CSSProperties; label?: CSSProperties; item?: CSSProperties; } interface SegmentedLabeledOptionWithoutIcon extends SegmentedLabeledOption$1 { label: SegmentedLabeledOption$1['label']; tooltip?: string | TooltipProps; } interface SegmentedLabeledOptionWithIcon extends Omit, 'label'> { label?: SegmentedLabeledOption$1['label']; /** Set icon for Segmented item */ icon?: VueNode; tooltip?: string | TooltipProps; } type SegmentedLabeledOption = SegmentedLabeledOptionWithIcon | SegmentedLabeledOptionWithoutIcon; type SegmentedOptions = (T | SegmentedLabeledOption)[]; type SegmentedClassNamesType = SemanticClassNamesType; type SegmentedStylesType = SemanticStylesType; interface SegmentedProps extends Omit, SegmentedEmitsProps { options: SegmentedOptions; rootClass?: string; /** Option to fit width to its parent's width */ block?: boolean; /** Option to control the display size */ size?: SizeType; vertical?: boolean; orientation?: Orientation; classes?: SegmentedClassNamesType; styles?: SegmentedStylesType; shape?: 'default' | 'round'; iconRender?: (option: SegmentedLabeledOption) => any; labelRender?: (option: SegmentedLabeledOption) => any; } interface SegmentedEmits { 'change': (value: SegmentedValue) => void; 'update:value': (value: SegmentedValue) => void; } interface SegmentedEmitsProps { onChange?: SegmentedEmits['change']; 'onUpdate:value'?: SegmentedEmits['update:value']; } interface SegmentedSlots { iconRender: (option: SegmentedLabeledOption) => any; labelRender: (option: SegmentedLabeledOption) => any; } declare const InternalSegmented: vue677.DefineSetupFnComponent, SegmentedProps, vue677.PublicProps>; declare const Segmented: typeof InternalSegmented & { install: (app: App) => void; }; //#endregion export { SegmentedClassNamesType, SegmentedEmits, SegmentedEmitsProps, SegmentedLabeledOption, SegmentedOptions, SegmentedProps, SegmentedSemanticClassNames, SegmentedSemanticName, SegmentedSemanticStyles, SegmentedSlots, SegmentedStylesType, Segmented as default };