import { StructureSchema } from '@ephox/boulder'; import type { Optional, Result } from '@ephox/katamari'; import { type DialogToggleMenuItem, type DialogToggleMenuItemSpec } from './ToggleMenuItem'; export type DialogFooterMenuButtonItemSpec = DialogToggleMenuItemSpec; export type DialogFooterToggleMenuItem = DialogToggleMenuItem; interface BaseDialogFooterButtonSpec { name?: string; align?: 'start' | 'end'; /** @deprecated use `buttonType: "primary"` instead */ primary?: boolean; enabled?: boolean; icon?: string; buttonType?: 'primary' | 'secondary'; context?: string; } export interface DialogFooterNormalButtonSpec extends BaseDialogFooterButtonSpec { type: 'submit' | 'cancel' | 'custom'; text: string; } export interface DialogFooterMenuButtonSpec extends BaseDialogFooterButtonSpec { type: 'menu'; text?: string; tooltip?: string; icon?: string; items: DialogFooterMenuButtonItemSpec[]; } export interface DialogFooterToggleButtonSpec extends BaseDialogFooterButtonSpec { type: 'togglebutton'; tooltip?: string; icon?: string; text?: string; active?: boolean; } export type DialogFooterButtonSpec = DialogFooterNormalButtonSpec | DialogFooterMenuButtonSpec | DialogFooterToggleButtonSpec; interface BaseDialogFooterButton { name: string; align: 'start' | 'end'; /** @deprecated use `buttonType: "primary"` instead */ primary: boolean; enabled: boolean; icon: Optional; buttonType: Optional<'primary' | 'secondary'>; context: string; } export interface DialogFooterNormalButton extends BaseDialogFooterButton { type: 'submit' | 'cancel' | 'custom'; text: string; } export interface DialogFooterMenuButton extends BaseDialogFooterButton { type: 'menu'; text: Optional; tooltip: Optional; icon: Optional; items: DialogFooterToggleMenuItem[]; } export interface DialogFooterToggleButton extends BaseDialogFooterButton { type: 'togglebutton'; tooltip: Optional; text: Optional; active: boolean; } export type DialogFooterButton = DialogFooterNormalButton | DialogFooterMenuButton | DialogFooterToggleButton; export declare const dialogFooterButtonFields: import("@ephox/boulder").FieldProcessor[]; export declare const dialogFooterButtonSchema: import("@ephox/boulder").StructureProcessor; export declare const createDialogFooterButton: (spec: DialogFooterButtonSpec) => Result>; export {}; //# sourceMappingURL=DialogFooterButton.d.ts.map