import { type DefaultProps } from '../config'; import { type OptionKeys } from '../../use'; import type { InjectionKey } from 'vue'; export type SegmentedOption = { [key: PropertyKey]: any; } | string | number | boolean; export type SegmentedSize = 'small' | 'medium' | 'large'; export interface SegmentedProps { modelValue?: any; disabled?: boolean; readonly?: boolean; size?: SegmentedSize; direction?: 'horizontal' | 'vertical'; shape?: 'square' | 'round'; options?: SegmentedOption[]; optionKeys?: OptionKeys; validateEvent?: boolean; ellipsis?: boolean; } export declare const defaultSegmentedProps: DefaultProps; export interface SegmentedSlots { default?(props: Record): any; } export interface SegmentedEmits { (e: 'update:modelValue', value: any): void; (e: 'change', value: any): void; } export interface SegmentedExpose { } export interface SegmentedContext { disabled: SegmentedProps['disabled']; readonly: SegmentedProps['readonly']; size: SegmentedProps['size']; shape: SegmentedProps['shape']; ellipsis: boolean; value: any; toggle: (value: any) => void; } export declare const segmentedContextKey: InjectionKey; export interface SegmentedItemProps { label?: string | number; value?: string | number | boolean; disabled?: boolean; readonly?: boolean; } export declare const defaultSegmentedItemProps: DefaultProps; export interface SegmentedItemSlots { default?(props: Record): any; } export interface SegmentedItemEmits { (e: 'click', event: MouseEvent): void; } export interface SegmentedItemExpose { }