import { type ButtonHTMLAttributes, type ReactNode } from 'react';
export interface WorkOfficeRibbonTab {
id: T;
label: string;
compactLabel?: string;
contextual?: boolean;
}
export interface WorkOfficeFileAction {
id: string;
label: string;
/** Uses a neutral file glyph when omitted so the menu never reserves a blank icon cell. */
icon?: ReactNode;
shortcut?: string;
disabled?: boolean;
/** Visually distinguishes an irreversible action without changing its behavior. */
danger?: boolean;
separatorBefore?: boolean;
onSelect: () => void | Promise;
}
export interface WorkOfficeQuickAccessAction {
id: string;
label: string;
icon: ReactNode;
shortcut?: string;
ariaKeyShortcuts?: string;
disabled?: boolean;
onSelect: () => void | Promise;
}
interface WorkOfficeRibbonDialogLauncher {
label: string;
shortcut?: string;
ariaKeyShortcuts?: string;
onClick: () => void;
}
export declare function WorkOfficeRibbon({ ariaLabel, tabs, defaultTab, activeTab, onTabChange, panels, fileActions, quickAccessActions, adaptive, collapsible, collapsed: controlledCollapsed, defaultCollapsed, onCollapsedChange, className, toolbarClassName, }: {
ariaLabel: string;
tabs: readonly WorkOfficeRibbonTab[];
defaultTab: T;
activeTab?: T;
onTabChange?: (tab: T) => void;
panels: Record;
fileActions?: readonly WorkOfficeFileAction[];
quickAccessActions?: readonly WorkOfficeQuickAccessAction[];
adaptive?: boolean;
collapsible?: boolean;
collapsed?: boolean;
defaultCollapsed?: boolean;
onCollapsedChange?: (collapsed: boolean) => void;
className?: string;
toolbarClassName?: string;
}): import("react").JSX.Element;
export declare function WorkOfficePreviewBar({ ariaLabel, label, detail, fileActions, className, }: {
ariaLabel: string;
label: string;
detail?: string;
fileActions?: readonly WorkOfficeFileAction[];
className?: string;
}): import("react").JSX.Element;
export declare function WorkOfficeRibbonGroup({ label, priority, dialogLauncher, children, }: {
label: string;
priority?: 'high' | 'normal' | 'low';
dialogLauncher?: WorkOfficeRibbonDialogLauncher;
children: ReactNode;
}): import("react").JSX.Element;
export declare function WorkOfficeRibbonButton({ label, visibleLabel, badge, active, displayLabel, className, title, children, ...props }: Omit, 'aria-label' | 'children'> & {
label: string;
visibleLabel?: string;
badge?: ReactNode;
active?: boolean;
displayLabel?: boolean;
children: ReactNode;
}): import("react").JSX.Element;
export declare function WorkOfficeStatusBar({ ariaLabel, children, controls, controlsLabel, className, }: {
ariaLabel?: string;
children: ReactNode;
controls?: ReactNode;
controlsLabel?: string;
className?: string;
}): import("react").JSX.Element;
export declare function WorkOfficeZoomControls({ zoom, minimum, maximum, step, decreaseLabel, increaseLabel, outputLabel, sliderLabel, onChange, }: {
zoom: number;
minimum?: number;
maximum?: number;
step?: number;
decreaseLabel: string;
increaseLabel: string;
outputLabel: string;
sliderLabel: string;
onChange: (zoom: number) => void;
}): import("react").JSX.Element;
export {};