import type { ActionId } from './actionIds.js';
import { type ActionInputFieldHint, type ActionSpec, type ActionSurfaces } from './actionSpecs.js';
export type SerializedActionSpec = Readonly<{
    id: string;
    title: string;
    description: string | null;
    safety: ActionSpec['safety'];
    placements: readonly string[];
    slash: ActionSpec['slash'] | null;
    bindings: ActionSpec['bindings'] | null;
    examples: ActionSpec['examples'] | null;
    surfaces: ActionSpec['surfaces'];
    inputHints: ActionSpec['inputHints'] | null;
}>;
export type ResolvedActionOption = Readonly<{
    value: string;
    label: string;
    description?: string;
    disabled?: boolean;
}>;
export declare function serializeActionSpec(spec: ActionSpec): SerializedActionSpec;
export declare function searchSerializedActionSpecs(specs: readonly ActionSpec[], params?: Readonly<{
    query?: string | null;
    limit?: number | null;
}>): readonly SerializedActionSpec[];
export declare function listActionSpecsForCatalogSurface(params: Readonly<{
    surface?: keyof ActionSurfaces | null;
    isActionEnabled?: (id: ActionId) => boolean;
}>): readonly ActionSpec[];
export declare function searchSerializedActionSpecsForSurface(params: Readonly<{
    surface?: keyof ActionSurfaces | null;
    query?: string | null;
    limit?: number | null;
    isActionEnabled?: (id: ActionId) => boolean;
}>): readonly SerializedActionSpec[];
export declare function getActionSpecForCatalogSurface(params: Readonly<{
    id: ActionId;
    surface?: keyof ActionSurfaces | null;
    isActionEnabled?: (id: ActionId) => boolean;
}>): ActionSpec | null;
export declare function getSerializedActionSpecForSurface(params: Readonly<{
    id: ActionId;
    surface?: keyof ActionSurfaces | null;
    isActionEnabled?: (id: ActionId) => boolean;
}>): SerializedActionSpec | null;
export declare function findActionInputFieldHint(spec: ActionSpec, fieldPath: string): ActionInputFieldHint | null;
export declare function serializeActionFieldOptions(field: ActionInputFieldHint): readonly ResolvedActionOption[];
export declare function filterResolvedActionOptions(options: readonly ResolvedActionOption[], params?: Readonly<{
    query?: string | null;
    limit?: number | null;
}>): readonly ResolvedActionOption[];
//# sourceMappingURL=actionCatalog.d.ts.map