import { type Catalog } from './catalog.js';
/** Renderer support only. Component definitions and authorization remain server-owned. */
export interface UiCapabilities {
    components: Array<{
        name: string;
        version: number;
    }>;
}
export declare function validateUiCapabilities(value: unknown): UiCapabilities;
export declare function negotiateCatalog(catalog: Catalog, capabilities?: UiCapabilities): Catalog;
export type PreparedUiEmission = {
    kind: 'ui';
    component: string;
    props: Record<string, unknown>;
    version: number;
    fallbackText: string;
    componentVersions?: Record<string, number>;
} | {
    kind: 'text';
    text: string;
};
/** Validate against current trusted definitions before drawing or generating complete text. */
export declare function prepareUiEmission(catalog: Catalog, capabilities: UiCapabilities | undefined, component: string, props: Record<string, unknown>, version?: number): Promise<PreparedUiEmission>;
//# sourceMappingURL=capabilities.d.ts.map