/**
 * Shared contract for agent-produced canvas artifacts.
 *
 * V1 is deliberately text-only: HTML, CSS, JS, SVG, JSON, and plain text files.
 * Binary assets and network-dependent files are follow-up work, because this
 * bundle is persisted in chat message metadata and rendered in a sandboxed
 * iframe.
 */
export declare const ARTIFACT_BUNDLE_SCHEMA_VERSION = 1;
export declare const ARTIFACT_BUNDLE_MAX_BYTES: number;
export declare const ARTIFACT_KINDS: readonly ["html", "document", "slides", "social", "app", "custom"];
export type ArtifactKind = typeof ARTIFACT_KINDS[number];
export declare const ARTIFACT_VIEWPORT_MODES: readonly ["fixed", "responsive", "paged"];
export type ArtifactViewportMode = typeof ARTIFACT_VIEWPORT_MODES[number];
export declare const ARTIFACT_FULLSCREEN_FITS: readonly ["contain", "width", "none"];
export type ArtifactFullscreenFit = typeof ARTIFACT_FULLSCREEN_FITS[number];
export declare const ARTIFACT_DISPLAY_BACKGROUNDS: readonly ["neutral", "transparent"];
export type ArtifactDisplayBackground = typeof ARTIFACT_DISPLAY_BACKGROUNDS[number];
export declare const ARTIFACT_LIBRARY_KEYS: readonly ["three", "d3", "motion"];
export type ArtifactLibraryKey = typeof ARTIFACT_LIBRARY_KEYS[number];
export interface ArtifactDisplayViewport {
    width: number;
    height: number;
}
export interface ArtifactDisplayStepperControl {
    selector?: string;
    label?: string;
}
export interface ArtifactDisplayControls {
    stepper?: ArtifactDisplayStepperControl;
    reset?: boolean;
}
export interface ArtifactViewport {
    width: number;
    height: number;
    mode: ArtifactViewportMode;
}
export interface ArtifactDisplay {
    fullscreenFit?: ArtifactFullscreenFit;
    background?: ArtifactDisplayBackground;
    fullscreenViewport?: ArtifactDisplayViewport;
    controls?: ArtifactDisplayControls;
}
export interface ArtifactSource {
    repo?: string;
    entityType?: string;
    entityId?: string;
    skillId?: string;
}
export interface ArtifactBundle {
    schemaVersion: typeof ARTIFACT_BUNDLE_SCHEMA_VERSION;
    artifactId: string;
    title: string;
    kind: ArtifactKind;
    viewport: ArtifactViewport;
    display?: ArtifactDisplay;
    libraries?: ArtifactLibraryKey[];
    files: Record<string, string>;
    entrypoint: string;
    source?: ArtifactSource;
}
export interface ArtifactValidationResult {
    ok: boolean;
    bundle?: ArtifactBundle;
    errors: string[];
    byteSize: number;
}
export declare function validateArtifactBundle(input: unknown): ArtifactValidationResult;
export declare function assertArtifactBundle(input: unknown): ArtifactBundle;
