/**
* A capability the editor offers its features but implements somewhere lower
* down: the app's router owns navigation, the header owns the create-page
* modal. The provider holds the slot, so a feature calls the capability
* without knowing which component carries it out.
*
* `call` and `register` keep their identity for the provider's lifetime, so a
* caller can hold either in a dependency array. Calling an unfilled slot does
* nothing.
*/
export interface EditorCapability {
call: (...args: A) => void;
/** Fills the slot until the returned function runs. */
register: (implementation: (...args: A) => void) => () => void;
}
export declare function useEditorCapability(): EditorCapability;