export type InputKind = "plain-prompt" | "slash-command" | "goal-form" | "resume" | "verify" | "replan";
export type InputSource = "chat" | "parallel" | "run" | "goal" | "api";
export type InputMcpScope = "all" | "project" | "none";
export interface InputRequestedArtifact {
    name: string;
    path?: string;
}
export interface InputSlashCommandEnvelope {
    command: string;
    argv: string[];
    positional: string[];
    flags: Record<string, boolean | string | string[]>;
}
export interface InputEnvelope {
    schemaVersion: 1;
    inputId: string;
    runId: string;
    sessionId?: string;
    kind: InputKind;
    raw: string;
    normalized: string;
    redactionCount: number;
    source: InputSource;
    cwd: string;
    root: string;
    rootSource?: string;
    provider?: string;
    model?: string;
    mcpScope?: InputMcpScope;
    ui?: string;
    view?: string;
    theme?: string;
    constraints: string[];
    requestedArtifacts: InputRequestedArtifact[];
    slashCommand?: InputSlashCommandEnvelope;
    createdAt: string;
}
export interface BuildInputEnvelopeInput {
    runId: string;
    sessionId?: string;
    kind: InputKind;
    raw: string;
    source: InputSource;
    cwd: string;
    root: string;
    rootSource?: string;
    provider?: string;
    model?: string;
    mcpScope?: InputMcpScope;
    ui?: string;
    view?: string;
    theme?: string;
    constraints?: readonly string[];
    requestedArtifacts?: readonly InputRequestedArtifact[];
    slashCommand?: InputSlashCommandEnvelope;
    now?: () => Date;
}
export declare function sanitizeInputTextForArtifact(value: string): {
    text: string;
    redactionCount: number;
};
export declare function normalizeInputText(raw: string): string;
export declare function normalizeMcpScope(value: string | undefined): InputMcpScope | undefined;
export declare function buildInputEnvelope(input: BuildInputEnvelopeInput): InputEnvelope;
