export type TextReceiverSource = "user" | "application" | "runtime" | "official-module";
export type TextReceiverBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type TextReceiverErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "EMPTY_TEXT" | "TEXT_TOO_SHORT" | "TEXT_TOO_LONG" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type TextReceiverGate = {
    accepted: boolean;
    reason?: string;
};
export type TextInputBoundary = {
    minCharacters?: number;
    maxCharacters?: number;
};
export type TextReceiverRequest = {
    runtimeId?: string;
    sessionId?: string;
    source?: TextReceiverSource;
    text?: string;
    contextRefs?: readonly string[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    inputBoundary?: TextInputBoundary;
    runtimeReady?: boolean;
    contract?: TextReceiverGate;
    governance?: TextReceiverGate;
};
export type TextReceiverError = {
    code: TextReceiverErrorCode;
    message: string;
    boundary: TextReceiverBoundary;
    safeForRuntimeInspection: true;
};
export type ReceivedTextInput = {
    kind: "text";
    runtimeId: string;
    sessionId: string;
    source: TextReceiverSource;
    rawText: string;
    normalizedText: string;
    contextRefs: readonly string[];
    promptPackHandoff: "pending";
    providerPayloadCreated: false;
    inputBoundary: {
        actualCharacters: number;
        minCharacters?: number;
        maxCharacters?: number;
    };
    governanceRequired: true;
    unsafeSideEffects: false;
};
export type TextReceiverResult = {
    ok: true;
    input: ReceivedTextInput;
    events: readonly string[];
} | {
    ok: false;
    error: TextReceiverError;
    events: readonly string[];
};
export declare const textInputReceiverDescriptor: {
    readonly modality: "text";
    readonly route: "agent_executionEngine.IOTransceiver.inputReceiver";
    readonly purpose: "normalize external text intent for PromptPack, stateEngine, and mainLoop handoff";
    readonly providerPayloadCreated: false;
    readonly unsafeSideEffects: false;
};
export declare function receiveTextInput(request?: TextReceiverRequest): TextReceiverResult;
