import { Component } from 'vue'; export interface OuiSliderOption { value: K; title?: string; icon?: Component | string; sliderClass?: string; } export interface OuiTab extends OuiSliderOption { content?: any; } export interface OuiSegmentedOption extends OuiSliderOption { } export type OuiSegmentedOptions = OuiSegmentedOption[]; export interface OuiTableColumn { name: K; title?: string; sortable?: boolean; align?: 'left' | 'center' | 'right'; valign?: 'top' | 'middle' | 'bottom'; footer?: string; width?: number; minWidth?: number; maxWidth?: number; grow?: boolean; } export interface OuiDraggableEvent { startX: number; startY: number; pageX: number; pageY: number; deltaX: number; deltaY: number; moveX: number; moveY: number; timeMS: number; } export interface OuiSelectItem { id: string | number; /** Title to be presented */ title: string; /** Text to be considered in search */ search?: string; /** Perform this action on selection */ action?: (title: string) => void; /** Is not automatically selected, if other possible selections are available */ skipSelection?: boolean; /** HTML/CSS class of item */ class?: string; }