export type VideoReceiverSource = "user" | "application" | "runtime" | "official-module";
export type VideoReceiverBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type VideoReceiverErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_VIDEO_PAYLOAD" | "INVALID_VIDEO_PAYLOAD" | "INVALID_TIME_RANGE" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type VideoReceiverGate = {
    accepted: boolean;
    reason?: string;
};
export type VideoTimeRange = {
    startMs: number;
    endMs: number;
};
export type FrameSelectionHint = {
    strategy: "keyframes" | "interval" | "timestamps";
    intervalMs?: number;
    timestampsMs?: readonly number[];
};
export type VideoProcessingNeed = "understanding" | "frame-selection" | "transcription" | "multimodal-context";
export type RawVideoInput = {
    kind: "raw-video";
    bytes: Uint8Array | readonly number[];
    format: string;
    durationMs?: number;
    timeRange?: VideoTimeRange;
};
export type ReferencedVideoInput = {
    kind: "video-reference";
    uri: string;
    format?: string;
    durationMs?: number;
    timeRange?: VideoTimeRange;
};
export type VideoReceiverPayload = RawVideoInput | ReferencedVideoInput;
export type VideoReceiverRequest = {
    runtimeId?: string;
    sessionId?: string;
    source?: VideoReceiverSource;
    payload?: VideoReceiverPayload;
    frameSelection?: FrameSelectionHint;
    processingNeeds?: readonly VideoProcessingNeed[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: VideoReceiverGate;
    governance?: VideoReceiverGate;
};
export type VideoReceiverError = {
    code: VideoReceiverErrorCode;
    message: string;
    boundary: VideoReceiverBoundary;
    safeForRuntimeInspection: true;
};
export type ReceivedVideoInput = {
    kind: "video";
    runtimeId: string;
    sessionId: string;
    source: VideoReceiverSource;
    payloadKind: VideoReceiverPayload["kind"];
    media: {
        format: string;
        durationMs?: number;
        byteLength?: number;
        uri?: string;
        timeRange?: VideoTimeRange;
    };
    frameSelection?: FrameSelectionHint;
    processingNeeds: readonly VideoProcessingNeed[];
    processingPlan: "dry-run-envelope";
    videoAlgorithmExecuted: false;
    providerPayloadCreated: false;
    unsafeSideEffects: false;
};
export type VideoReceiverResult = {
    ok: true;
    input: ReceivedVideoInput;
    events: readonly string[];
} | {
    ok: false;
    error: VideoReceiverError;
    events: readonly string[];
};
export declare const videoInputReceiverDescriptor: {
    readonly modality: "video";
    readonly route: "agent_executionEngine.IOTransceiver.inputReceiver";
    readonly purpose: "capture video source, time range, frame hints, and processing needs without running video algorithms";
    readonly providerPayloadCreated: false;
    readonly videoAlgorithmExecuted: false;
    readonly unsafeSideEffects: false;
};
export declare function receiveVideoInput(request?: VideoReceiverRequest): VideoReceiverResult;
