import { StructureSchema } from '@ephox/boulder'; import type { Optional, Result } from '@ephox/katamari'; import type { ChoiceMenuItemSpec, ImageMenuItemSpec, SeparatorMenuItemSpec } from '../../api/Menu'; export type ToolbarSplitButtonItemTypes = ChoiceMenuItemSpec | SeparatorMenuItemSpec | ImageMenuItemSpec; export type SuccessCallback = (menu: ToolbarSplitButtonItemTypes[]) => void; export type SelectPredicate = (value: string) => boolean; export type PresetTypes = 'color' | 'normal' | 'listpreview' | 'imageselector'; export type PresetItemTypes = 'color' | 'img' | 'normal'; export type ColumnTypes = number | 'auto'; export interface ToolbarSplitButtonSpec { type?: 'splitbutton'; tooltip?: string; chevronTooltip?: string; icon?: string; text?: string; select?: SelectPredicate; presets?: PresetTypes; columns?: ColumnTypes; fetch: (success: SuccessCallback) => void; onSetup?: (api: ToolbarSplitButtonInstanceApi) => (api: ToolbarSplitButtonInstanceApi) => void; onAction: (api: ToolbarSplitButtonInstanceApi) => void; onItemAction: (api: ToolbarSplitButtonInstanceApi, value: string) => void; context?: string; } export interface ToolbarSplitButton { type: 'splitbutton'; tooltip: Optional; chevronTooltip: Optional; icon: Optional; text: Optional; select: Optional; presets: PresetTypes; columns: ColumnTypes; fetch: (success: SuccessCallback) => void; onSetup: (api: ToolbarSplitButtonInstanceApi) => (api: ToolbarSplitButtonInstanceApi) => void; onAction: (api: ToolbarSplitButtonInstanceApi) => void; onItemAction: (api: ToolbarSplitButtonInstanceApi, value: string) => void; context: string; } export interface ToolbarSplitButtonInstanceApi { isEnabled: () => boolean; setEnabled: (state: boolean) => void; setIconFill: (id: string, value: string) => void; isActive: () => boolean; setActive: (state: boolean) => void; setTooltip: (tooltip: string) => void; setText: (text: string) => void; setIcon: (icon: string) => void; } export declare const splitButtonSchema: import("@ephox/boulder").StructureProcessor; export declare const isSplitButtonButton: (spec: any) => spec is ToolbarSplitButton; export declare const createSplitButton: (spec: ToolbarSplitButtonSpec) => Result>; //# sourceMappingURL=ToolbarSplitButton.d.ts.map