import { Type } from "typebox";
/** Generated media/file attachment metadata carried by internal agent events. */
export declare const AgentGeneratedAttachmentSchema: Type.TObject<{
    type: Type.TOptional<Type.TString>;
    path: Type.TOptional<Type.TString>;
    url: Type.TOptional<Type.TString>;
    mediaUrl: Type.TOptional<Type.TString>;
    filePath: Type.TOptional<Type.TString>;
    mimeType: Type.TOptional<Type.TString>;
    name: Type.TOptional<Type.TString>;
}>;
/** Internal completion event surfaced when child automation reports back to a parent run. */
export declare const AgentInternalEventSchema: Type.TObject<{
    type: Type.TLiteral<"task_completion">;
    source: Type.TString;
    childSessionKey: Type.TString;
    childSessionId: Type.TOptional<Type.TString>;
    announceType: Type.TString;
    taskLabel: Type.TString;
    status: Type.TString;
    statusLabel: Type.TString;
    result: Type.TString;
    attachments: Type.TOptional<Type.TArray<Type.TObject<{
        type: Type.TOptional<Type.TString>;
        path: Type.TOptional<Type.TString>;
        url: Type.TOptional<Type.TString>;
        mediaUrl: Type.TOptional<Type.TString>;
        filePath: Type.TOptional<Type.TString>;
        mimeType: Type.TOptional<Type.TString>;
        name: Type.TOptional<Type.TString>;
    }>>>;
    mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
    statsLine: Type.TOptional<Type.TString>;
    replyInstruction: Type.TString;
}>;
/** Stream event emitted by the agent runtime over the gateway protocol. */
export declare const AgentEventSchema: Type.TObject<{
    runId: Type.TString;
    seq: Type.TInteger;
    stream: Type.TString;
    ts: Type.TInteger;
    spawnedBy: Type.TOptional<Type.TString>;
    isHeartbeat: Type.TOptional<Type.TBoolean>;
    data: Type.TRecord<"^.*$", Type.TUnknown>;
}>;
/** Channel context injected into message actions so tools can reply in-place. */
export declare const MessageActionToolContextSchema: Type.TObject<{
    currentChannelId: Type.TOptional<Type.TString>;
    currentMessagingTarget: Type.TOptional<Type.TString>;
    currentGraphChannelId: Type.TOptional<Type.TString>;
    currentChannelProvider: Type.TOptional<Type.TString>;
    currentThreadTs: Type.TOptional<Type.TString>;
    currentMessageId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
    replyToMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"first">, Type.TLiteral<"all">, Type.TLiteral<"batched">]>>;
    hasRepliedRef: Type.TOptional<Type.TObject<{
        value: Type.TBoolean;
    }>>;
    sameChannelThreadRequired: Type.TOptional<Type.TBoolean>;
    skipCrossContextDecoration: Type.TOptional<Type.TBoolean>;
}>;
/** Request to execute a channel message action through a configured adapter. */
export declare const MessageActionParamsSchema: Type.TObject<{
    channel: Type.TString;
    action: Type.TString;
    params: Type.TRecord<"^.*$", Type.TUnknown>;
    accountId: Type.TOptional<Type.TString>;
    requesterSenderId: Type.TOptional<Type.TString>;
    senderIsOwner: Type.TOptional<Type.TBoolean>;
    sessionKey: Type.TOptional<Type.TString>;
    sessionId: Type.TOptional<Type.TString>;
    inboundTurnKind: Type.TOptional<Type.TString>;
    agentId: Type.TOptional<Type.TString>;
    toolContext: Type.TOptional<Type.TObject<{
        currentChannelId: Type.TOptional<Type.TString>;
        currentMessagingTarget: Type.TOptional<Type.TString>;
        currentGraphChannelId: Type.TOptional<Type.TString>;
        currentChannelProvider: Type.TOptional<Type.TString>;
        currentThreadTs: Type.TOptional<Type.TString>;
        currentMessageId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNumber]>>;
        replyToMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"off">, Type.TLiteral<"first">, Type.TLiteral<"all">, Type.TLiteral<"batched">]>>;
        hasRepliedRef: Type.TOptional<Type.TObject<{
            value: Type.TBoolean;
        }>>;
        sameChannelThreadRequired: Type.TOptional<Type.TBoolean>;
        skipCrossContextDecoration: Type.TOptional<Type.TBoolean>;
    }>>;
    idempotencyKey: Type.TString;
}>;
/** Outbound send request shared by channel adapters. */
export declare const SendParamsSchema: Type.TObject<{
    to: Type.TString;
    message: Type.TOptional<Type.TString>;
    mediaUrl: Type.TOptional<Type.TString>;
    mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
    /** Base64 attachment payload for gateway-local media materialization. */
    buffer: Type.TOptional<Type.TString>;
    /** Optional filename for a base64 attachment payload. */
    filename: Type.TOptional<Type.TString>;
    /** Optional MIME type for a base64 attachment payload. */
    contentType: Type.TOptional<Type.TString>;
    asVoice: Type.TOptional<Type.TBoolean>;
    gifPlayback: Type.TOptional<Type.TBoolean>;
    channel: Type.TOptional<Type.TString>;
    accountId: Type.TOptional<Type.TString>;
    /** Optional agent id for per-agent media root resolution on gateway sends. */
    agentId: Type.TOptional<Type.TString>;
    /** Reply target message id for native quoted/threaded sends where supported. */
    replyToId: Type.TOptional<Type.TString>;
    /** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
    threadId: Type.TOptional<Type.TString>;
    /** Force document-style media sends where supported. */
    forceDocument: Type.TOptional<Type.TBoolean>;
    /** Send silently (no notification) where supported. */
    silent: Type.TOptional<Type.TBoolean>;
    /** Channel-specific parse mode for formatted text. */
    parseMode: Type.TOptional<Type.TLiteral<"HTML">>;
    /** Optional session key for mirroring delivered output back into the transcript. */
    sessionKey: Type.TOptional<Type.TString>;
    idempotencyKey: Type.TString;
}>;
/** Poll creation request for adapters that support native polls. */
export declare const PollParamsSchema: Type.TObject<{
    to: Type.TString;
    question: Type.TString;
    options: Type.TArray<Type.TString>;
    maxSelections: Type.TOptional<Type.TInteger>;
    /** Poll duration in seconds (channel-specific limits may apply). */
    durationSeconds: Type.TOptional<Type.TInteger>;
    durationHours: Type.TOptional<Type.TInteger>;
    /** Send silently (no notification) where supported. */
    silent: Type.TOptional<Type.TBoolean>;
    /** Poll anonymity where supported (e.g. Telegram polls default to anonymous). */
    isAnonymous: Type.TOptional<Type.TBoolean>;
    /** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
    threadId: Type.TOptional<Type.TString>;
    channel: Type.TOptional<Type.TString>;
    accountId: Type.TOptional<Type.TString>;
    idempotencyKey: Type.TString;
}>;
/** Main agent-run request accepted by the gateway. */
export declare const AgentParamsSchema: Type.TObject<{
    message: Type.TString;
    agentId: Type.TOptional<Type.TString>;
    provider: Type.TOptional<Type.TString>;
    model: Type.TOptional<Type.TString>;
    to: Type.TOptional<Type.TString>;
    replyTo: Type.TOptional<Type.TString>;
    sessionId: Type.TOptional<Type.TString>;
    sessionKey: Type.TOptional<Type.TString>;
    thinking: Type.TOptional<Type.TString>;
    deliver: Type.TOptional<Type.TBoolean>;
    attachments: Type.TOptional<Type.TArray<Type.TUnknown>>;
    channel: Type.TOptional<Type.TString>;
    replyChannel: Type.TOptional<Type.TString>;
    accountId: Type.TOptional<Type.TString>;
    replyAccountId: Type.TOptional<Type.TString>;
    threadId: Type.TOptional<Type.TString>;
    groupId: Type.TOptional<Type.TString>;
    groupChannel: Type.TOptional<Type.TString>;
    groupSpace: Type.TOptional<Type.TString>;
    timeout: Type.TOptional<Type.TInteger>;
    bestEffortDeliver: Type.TOptional<Type.TBoolean>;
    lane: Type.TOptional<Type.TString>;
    cleanupBundleMcpOnRunEnd: Type.TOptional<Type.TBoolean>;
    modelRun: Type.TOptional<Type.TBoolean>;
    promptMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"full">, Type.TLiteral<"minimal">, Type.TLiteral<"none">]>>;
    extraSystemPrompt: Type.TOptional<Type.TString>;
    bootstrapContextMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"full">, Type.TLiteral<"lightweight">]>>;
    bootstrapContextRunKind: Type.TOptional<Type.TUnion<[Type.TLiteral<"default">, Type.TLiteral<"heartbeat">, Type.TLiteral<"cron">]>>;
    acpTurnSource: Type.TOptional<Type.TLiteral<"manual_spawn">>;
    internalRuntimeHandoffId: Type.TOptional<Type.TString>;
    execApprovalFollowupExpectedSessionId: Type.TOptional<Type.TString>;
    internalEvents: Type.TOptional<Type.TArray<Type.TObject<{
        type: Type.TLiteral<"task_completion">;
        source: Type.TString;
        childSessionKey: Type.TString;
        childSessionId: Type.TOptional<Type.TString>;
        announceType: Type.TString;
        taskLabel: Type.TString;
        status: Type.TString;
        statusLabel: Type.TString;
        result: Type.TString;
        attachments: Type.TOptional<Type.TArray<Type.TObject<{
            type: Type.TOptional<Type.TString>;
            path: Type.TOptional<Type.TString>;
            url: Type.TOptional<Type.TString>;
            mediaUrl: Type.TOptional<Type.TString>;
            filePath: Type.TOptional<Type.TString>;
            mimeType: Type.TOptional<Type.TString>;
            name: Type.TOptional<Type.TString>;
        }>>>;
        mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
        statsLine: Type.TOptional<Type.TString>;
        replyInstruction: Type.TString;
    }>>>;
    inputProvenance: Type.TOptional<Type.TObject<{
        kind: Type.TString;
        originSessionId: Type.TOptional<Type.TString>;
        sourceSessionKey: Type.TOptional<Type.TString>;
        sourceChannel: Type.TOptional<Type.TString>;
        sourceTool: Type.TOptional<Type.TString>;
    }>>;
    suppressPromptPersistence: Type.TOptional<Type.TBoolean>;
    sessionEffects: Type.TOptional<Type.TUnion<[Type.TLiteral<"visible">, Type.TLiteral<"internal">]>>;
    sourceReplyDeliveryMode: Type.TOptional<Type.TUnion<[Type.TLiteral<"automatic">, Type.TLiteral<"message_tool_only">]>>;
    disableMessageTool: Type.TOptional<Type.TBoolean>;
    voiceWakeTrigger: Type.TOptional<Type.TString>;
    idempotencyKey: Type.TString;
    label: Type.TOptional<Type.TString>;
}>;
/** Identity lookup request for the current or selected agent/session. */
export declare const AgentIdentityParamsSchema: Type.TObject<{
    agentId: Type.TOptional<Type.TString>;
    sessionKey: Type.TOptional<Type.TString>;
}>;
/** Public display identity returned for an agent. */
export declare const AgentIdentityResultSchema: Type.TObject<{
    agentId: Type.TString;
    name: Type.TOptional<Type.TString>;
    avatar: Type.TOptional<Type.TString>;
    avatarSource: Type.TOptional<Type.TString>;
    avatarStatus: Type.TOptional<Type.TString>;
    avatarReason: Type.TOptional<Type.TString>;
    emoji: Type.TOptional<Type.TString>;
}>;
/** Waits for a submitted agent run to complete or time out. */
export declare const AgentWaitParamsSchema: Type.TObject<{
    runId: Type.TString;
    timeoutMs: Type.TOptional<Type.TInteger>;
}>;
/** Wake request from external schedulers or devices into an agent session. */
export declare const WakeParamsSchema: Type.TObject<{
    mode: Type.TUnion<[Type.TLiteral<"now">, Type.TLiteral<"next-heartbeat">]>;
    text: Type.TString;
    sessionKey: Type.TOptional<Type.TString>;
    /**
     * Optional agent id paired with `sessionKey`. Routes multi-agent setups
     * to the agent that owns the targeted session — closes the related half
     * of #46886 ("always routes to default agent").
     */
    agentId: Type.TOptional<Type.TString>;
}>;
