import { FluxFilterDefinition, FluxFilterState, FluxFilterValue, FluxIconName, FluxSize } from '@flux-ui/types'; import { DateTime } from 'luxon'; import { ComponentInternalInstance, ComputedRef, InjectionKey, Ref, VNode } from 'vue'; export declare const FluxAdaptiveGroupInjectionKey: InjectionKey; export declare const FluxBreadcrumbCollapsedInjectionKey: InjectionKey>; export declare const FluxBreadcrumbSeparatorInjectionKey: InjectionKey>; export declare const FluxCalendarInjectionKey: InjectionKey; export declare const FluxDisabledInjectionKey: InjectionKey>; export declare const FluxKanbanInjectionKey: InjectionKey; export declare const FluxExpandableGroupInjectionKey: InjectionKey; export declare const FluxFlyoutInjectionKey: InjectionKey; export declare const FluxFilterInjectionKey: InjectionKey; export declare const FluxFormCheckboxGroupInjectionKey: InjectionKey; export declare const FluxFormFieldInjectionKey: InjectionKey; export declare const FluxFormRadioGroupInjectionKey: InjectionKey; export declare const FluxItemControlInjectionKey: InjectionKey; export declare const FluxMenuFlyoutInjectionKey: InjectionKey; export declare const FluxMenuPersistentInjectionKey: InjectionKey>>; export declare const FluxSegmentedControlInjectionKey: InjectionKey; export declare const FluxTabBarInjectionKey: InjectionKey; export declare const FluxTableInjectionKey: InjectionKey; export declare const FluxTimelineInjectionKey: InjectionKey; export declare const FluxTooltipInjectionKey: InjectionKey; export type FluxKanbanDragMode = 'pointer' | 'keyboard'; export type FluxKanbanDragState = { readonly mode: FluxKanbanDragMode; readonly itemId: string | number; readonly fromColumnId: string | number; readonly dropColumnId: string | number | null; readonly beforeItemId: string | number | null; readonly originBeforeItemId?: string | number | null; }; export type FluxKanbanColumnDragState = { readonly columnId: string | number; readonly dropBeforeColumnId: string | number | null; }; export type FluxKanbanKeyboardDirection = 'up' | 'down' | 'left' | 'right'; export type FluxKanbanInjection = { readonly disabled: Ref; readonly reorderableColumns: Ref; readonly dragState: Ref; readonly columnDragState: Ref; readonly grabbedId: Ref; readonly isOverColumnId: Ref; readonly isDropAllowed: Ref; registerItem(element: Element, itemId: string | number): void; unregisterItem(element: Element): void; getItemInfo(element: Element): { readonly itemId: string | number; } | undefined; registerColumn(element: Element, columnId: string | number): void; unregisterColumn(element: Element): void; getColumnInfo(element: Element): { readonly columnId: string | number; } | undefined; setBoardElement(element: Element | null): void; setColumnBodyElement(columnId: string | number, element: Element | null): void; enterColumn(columnId: string | number): void; leaveColumn(columnId: string | number): void; startDrag(itemId: string | number, fromColumnId: string | number): void; endDrag(): void; updateDropTarget(columnId: string | number, beforeItemId: string | number | null): void; clearDropTarget(): void; commitDrop(): void; grabItem(itemId: string | number, fromColumnId: string | number): void; moveKeyboard(direction: FluxKanbanKeyboardDirection): void; commitKeyboardDrop(): void; cancelKeyboardDrop(): void; isItemGrabbed(itemId: string | number): boolean; startColumnDrag(columnId: string | number): void; endColumnDrag(): void; updateColumnDropTarget(beforeColumnId: string | number | null): void; commitColumnDrop(): void; cancelAll(): void; onPointerMove(clientX: number, clientY: number): void; }; export type FluxAdaptiveGroupChild = { readonly priority: Ref; readonly desiredDefaultWidth: Ref; readonly desiredFallbackWidth: Ref; readonly isDefaultVisible: Ref; }; export type FluxAdaptiveGroupInjection = { register(uid: number, child: FluxAdaptiveGroupChild): void; unregister(uid: number): void; }; export type FluxCalendarView = 'month' | 'week' | 'two-days' | 'day'; export type FluxCalendarKeyboardDirection = 'up' | 'down' | 'left' | 'right'; export type FluxCalendarItemData = { readonly id: string | number; readonly date: DateTime; readonly duration?: number; readonly allDay: boolean; readonly isClickable: boolean; renderContent(): VNode[]; handleClick(evt: MouseEvent): void; }; export type FluxCalendarInjection = { readonly isDraggable: ComputedRef; readonly resolvedView: ComputedRef; readonly hourRange: ComputedRef; readonly pixelsPerMinute: ComputedRef; readonly snapMinutes: ComputedRef; readonly grabbedId: Ref; registerItem(id: string | number, data: FluxCalendarItemData): void; unregisterItem(id: string | number): void; registerItemElement(element: Element, id: string | number): void; unregisterItemElement(element: Element): void; onItemDragStart(id: string | number, fromDate: DateTime, evt: DragEvent): void; onItemDragEnd(id: string | number): void; onItemKeyboardGrab(id: string | number, fromDate: DateTime): void; onItemKeyboardMove(direction: FluxCalendarKeyboardDirection): void; onItemKeyboardCommit(): void; onItemKeyboardCancel(): void; }; export type FluxExpandableGroupInjection = { closeAll(): void; register(uid: number, expandable: ComponentInternalInstance): void; unregister(uid: number): void; }; export type FluxFilterInjection = { readonly state: Ref; back(): void; clear(name: string | number): void; getDefinition(name: string | number): FluxFilterDefinition | undefined; getValue(name: string | number): FluxFilterValue | undefined; hasValue(name: string | number): boolean; reset(name: string | number): void; setValue(name: string | number, value?: FluxFilterValue): void; }; export type FluxFlyoutInjection = { readonly isClosing: Ref; readonly isOpen: Ref; readonly isOpening: Ref; close(): void; }; export type FluxItemControlInjection = { readonly isControl: Readonly>; register(id: string): void; }; export type FluxMenuFlyoutPointer = { readonly x: number; readonly y: number; readonly tx: number; readonly ty: number; readonly vx: number; readonly vy: number; readonly speed: number; }; export type FluxMenuFlyoutCone = { readonly id: number; readonly ax: number; readonly ay: number; readonly bx: number; readonly by: number; readonly cx: number; readonly cy: number; readonly dx?: number; readonly dy?: number; readonly hx: number; readonly hy: number; readonly back: boolean; }; export type FluxMenuFlyoutEntry = { readonly id: number; getTrigger(): HTMLElement | null; getPopup(): HTMLElement | null; readonly isOpen: Ref; wasRecentlyInside(): boolean; close(): void; }; export type FluxMenuFlyoutInjection = { readonly debugCone: Ref; readonly pointer: Readonly>; readonly pointerType: Readonly>; readonly activeCone: Ref; readonly keyboardStack: Ref; register(entry: FluxMenuFlyoutEntry): void; unregister(entry: FluxMenuFlyoutEntry): void; closeOthers(self: FluxMenuFlyoutEntry): void; hasOpenDescendant(self: FluxMenuFlyoutEntry): boolean; isAimingAtOpenSubmenu(askTrigger: HTMLElement | null): boolean; isInsidePopups(target: Node | null): boolean; getActiveConeTrigger(): HTMLElement | null; closeAll(): void; }; export type FluxFormFieldInjection = { readonly id?: string; readonly labelId?: string; readonly errorId?: Readonly>; readonly hintId?: Readonly>; readonly isGroup?: boolean; registerControl?(): string; }; export type FluxFormCheckboxGroupValue = string | number | boolean; export type FluxFormCheckboxGroupInjection = { readonly modelValue: Ref; readonly disabled: Ref; readonly isReadonly: Ref; readonly error: Ref; has(value: FluxFormCheckboxGroupValue): boolean; toggle(value: FluxFormCheckboxGroupValue): void; }; export type FluxFormRadioGroupValue = string | number | boolean; export type FluxFormRadioGroupInjection = { readonly name: string; readonly modelValue: Ref; readonly disabled: Ref; readonly isReadonly: Ref; readonly error: Ref; select(value: FluxFormRadioGroupValue): void; }; export type FluxSegmentedControlValue = string | number; export type FluxSegmentedControlInjection = { readonly modelValue: Ref; readonly size: Ref; select(value: FluxSegmentedControlValue): void; registerItem(element: HTMLElement, value: FluxSegmentedControlValue): void; unregisterItem(element: HTMLElement): void; }; export type FluxTabBarInjection = { readonly isPills: Ref; registerItem(element: Element, isActive: Ref): void; unregisterItem(element: Element): void; }; export type FluxTableColumnDef = { readonly align?: 'start' | 'center' | 'end'; readonly isNumeric?: boolean; readonly isShrinking?: boolean; readonly maxWidth?: number; readonly minWidth?: number; readonly noWrap?: boolean; readonly pinned: 'start' | 'end' | null; readonly width?: number; }; export type FluxTablePinnedEdges = { readonly end: number; readonly start: number; }; export type FluxTableInjection = { readonly activeRow: Ref; readonly columns: Readonly>; readonly pinnedEdges: Ref; readonly pinnedOffsets: Ref>; registerColumn(element: Readonly>, column: Readonly>): () => void; registerTreeNode(element: Readonly>, level: Readonly>): () => void; }; export type FluxTimelineInjection = { registerMarker(element: Readonly>): () => void; }; export type FluxTooltipInjection = { calculate(): void; };