import type { ControlDef, ControlItem } from './types'; /** * Add a control, or replace one by reusing its id. Returns the definition so it can be dropped * straight into a layout. * * ```js * defineControl({ id: 'print', title: 'Print', icon: '', action: () => print() }); * new Zine(el, { source, controls: { items: ['prev', 'next', 'print'] } }); * ``` */ export declare function defineControl(def: ControlDef): ControlDef; /** Look up a registered control. */ export declare function getControl(id: string): ControlDef | undefined; /** * Turn a layout entry into a concrete definition. A bare string names a registered control; an * object with only some fields is layered over the registered one, so `{ id: 'next', title: 'Go * on' }` relabels the built-in without reimplementing it. */ export declare function resolveControl(item: ControlItem): ControlDef; /** The toolbar shown when `items` is not given. */ export declare const DEFAULT_ITEMS: readonly ControlItem[];