import { CustomActionSpec, CustomActionsSpec } from '@camstack/types';
type Handler = (action: string, input: unknown) => Promise<unknown>;
export interface CustomActionEntry {
    readonly spec: CustomActionSpec;
    readonly handler: (input: unknown) => Promise<unknown>;
}
/**
 * CustomActionRegistry — per-process registry of addon custom actions.
 *
 * Populated at boot from each addon's `AddonInitResult.customActions` +
 * `handleCustomAction` handler. Rejects actions declared with scope other
 * than 'system' (today only 'system' is runtime-supported; the descriptor
 * allows future scopes for forward compat).
 */
export declare class CustomActionRegistry {
    private readonly byAddon;
    registerAddon(addonId: string, catalog: CustomActionsSpec, handler: Handler): void;
    unregisterAddon(addonId: string): void;
    resolve(addonId: string, action: string): CustomActionEntry | null;
    listActions(addonId: string): readonly string[];
    listAddons(): readonly string[];
}
export {};
//# sourceMappingURL=custom-action-registry.d.ts.map