export type ShellArgumentAssemblyPermission = "shell:generate";
export type ShellArgumentAssemblyBoundary = "input" | "permission" | "contract" | "governance";
export type ShellArgumentAssemblyContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        allowed?: boolean;
        accepted?: boolean;
        reason?: string;
    };
    grantedPermissions?: readonly ShellArgumentAssemblyPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellArgumentValue = string | number | boolean | {
    value?: string | number | boolean;
    sensitive?: boolean;
};
export type ShellOptionArgument = {
    name?: string;
    value?: ShellArgumentValue;
    joinWithEquals?: boolean;
};
export type ShellArgumentAssemblyRequest = {
    executable?: string;
    positional?: readonly ShellArgumentValue[];
    options?: readonly ShellOptionArgument[];
    context?: ShellArgumentAssemblyContext;
};
export type ShellArgumentAssemblyErrorCode = "MISSING_EXECUTABLE" | "INVALID_ARGUMENT" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED" | "REAL_EXECUTION_BLOCKED";
export type ShellArgumentAssemblyError = {
    code: ShellArgumentAssemblyErrorCode;
    message: string;
    boundary: ShellArgumentAssemblyBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellArgumentAssemblyAuditEvent = {
    type: string;
    toolId: "shell.argumentAssembly";
    invocationId: string;
    dryRun: boolean;
    argvPreview: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellArgumentToken = {
    raw: string;
    rendered: string;
    sensitive: boolean;
};
export type ShellArgumentAssemblyOutput = {
    kind: "agentCore.basicTool.shell.argumentAssembly";
    executable: string;
    argv: readonly string[];
    renderedTokens: readonly ShellArgumentToken[];
    redactedPreview: readonly string[];
    requiredPermission: ShellArgumentAssemblyPermission;
    dryRun: boolean;
    providerCalled: boolean;
    executionBlocked: true;
    unsafeSideEffects: false;
};
export type ShellArgumentAssemblyResult = {
    ok: true;
    toolId: "shell.argumentAssembly";
    output: ShellArgumentAssemblyOutput;
    audit: readonly ShellArgumentAssemblyAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.argumentAssembly";
    error: ShellArgumentAssemblyError;
    audit: readonly ShellArgumentAssemblyAuditEvent[];
    events: readonly string[];
};
export declare const shellArgumentAssemblyDescriptor: {
    readonly toolId: "shell.argumentAssembly";
    readonly capability: "shell-argument-assembly";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellGeneration";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly requiredPermission: "shell:generate";
    readonly unsafeSideEffects: false;
};
export declare function quoteShellArgument(value: string): string;
export declare function assembleShellArguments(request?: ShellArgumentAssemblyRequest): ShellArgumentAssemblyResult;
