import { Type } from "typebox";
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;
    mediaUrls: Type.TOptional<Type.TArray<Type.TString>>;
    statsLine: Type.TOptional<Type.TString>;
    replyInstruction: Type.TString;
}>;
export declare const AgentEventSchema: Type.TObject<{
    runId: Type.TString;
    seq: Type.TInteger;
    stream: Type.TString;
    ts: Type.TInteger;
    data: Type.TRecord<"^.*$", Type.TUnknown>;
}>;
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>>;
    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>;
    /** Thread id (channel-specific meaning, e.g. Telegram forum topic id). */
    threadId: Type.TOptional<Type.TString>;
    /** Optional session key for mirroring delivered output back into the transcript. */
    sessionKey: Type.TOptional<Type.TString>;
    idempotencyKey: Type.TString;
}>;
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;
}>;
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>;
    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">]>>;
    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;
        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>;
    }>>;
    idempotencyKey: Type.TString;
    label: Type.TOptional<Type.TString>;
}>;
export declare const AgentIdentityParamsSchema: Type.TObject<{
    agentId: Type.TOptional<Type.TString>;
    sessionKey: Type.TOptional<Type.TString>;
}>;
export declare const AgentIdentityResultSchema: Type.TObject<{
    agentId: Type.TString;
    name: Type.TOptional<Type.TString>;
    avatar: Type.TOptional<Type.TString>;
    emoji: Type.TOptional<Type.TString>;
}>;
export declare const AgentWaitParamsSchema: Type.TObject<{
    runId: Type.TString;
    timeoutMs: Type.TOptional<Type.TInteger>;
}>;
export declare const WakeParamsSchema: Type.TObject<{
    mode: Type.TUnion<[Type.TLiteral<"now">, Type.TLiteral<"next-heartbeat">]>;
    text: Type.TString;
}>;
