import type { IslandErrorDetail, IslandLoadDetail } from "./contract.js";
export interface RuntimeLogger {
    note(msg: string): void;
    flush(summary: string): void;
}
export interface RuntimeSurface {
    dispatchLoad(detail: IslandLoadDetail): void;
    dispatchError(detail: IslandErrorDetail): void;
    onLoad(handler: (detail: IslandLoadDetail) => void): () => void;
    onError(handler: (detail: IslandErrorDetail) => void): () => void;
    createLogger(tagName: string, debug: boolean): RuntimeLogger;
    beginReadyLog(islandCount: number, debug: boolean): () => void;
}
interface RuntimeSurfaceDeps {
    target: Document;
    console: Pick<Console, "log" | "groupCollapsed" | "groupEnd">;
}
export declare function createRuntimeSurface(deps: RuntimeSurfaceDeps): RuntimeSurface;
export declare function getRuntimeSurface(): RuntimeSurface;
export {};
