import { CardEnvelope, CardHost } from '../primitives/card-contract';
import { JsonSchema } from '../primitives/card-validate';
/** A provider-side renderer for one card `type`. Renamed (was CardRenderer) per H-K
 *  to avoid colliding with the exported Solid `<CardRenderer>` component. */
export interface RemoteCardRenderer {
    /** The card `type` this renderer handles. */
    type: string;
    /** Optional JSON Schema for this type's `data`; validated best-effort before mount. */
    schema?: JsonSchema;
    /** Mount into `root`, given the envelope + a CardHost. Return a disposer. */
    mount(root: HTMLElement, envelope: CardEnvelope, host: CardHost): () => void;
}
export interface CreateCardBridgeOptions {
    /** Element the card mounts into + whose height is observed. */
    root: HTMLElement;
    /** Renderers by card type. Unknown type → inline "unsupported card" + event{error}. */
    renderers: RemoteCardRenderer[];
    /** Versions this runtime supports (default ['1']). */
    supportedVersions?: string[];
}
export interface CardBridge {
    /** Begin: listen for `hello`, complete handshake, render on `render`. */
    start(): void;
    /** Stop observers + listeners + dispose current card. */
    stop(): void;
}
export declare function createCardBridge(options: CreateCardBridgeOptions): CardBridge;
