export type ShellStdinFeedingPermission = "shell:stdin:feed";
export type ShellStdinFeedingBoundary = "input" | "permission" | "scope" | "approval" | "resource" | "contract";
export type ShellStdinFeedingMode = "text" | "control-sequence";
export type ShellStdinFeedingContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    grantedPermissions?: readonly ShellStdinFeedingPermission[];
    allowedSessionIds?: readonly string[];
    maxBytes?: number;
    approval?: {
        accepted: boolean;
        approvalId?: string;
        reason?: string;
    };
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellStdinFeedingTarget = {
    sessionId: string;
    input: string;
    mode?: ShellStdinFeedingMode;
    appendNewline?: boolean;
    sensitive?: boolean;
};
export type ShellStdinFeedingRequest = {
    target?: Partial<ShellStdinFeedingTarget>;
    context?: ShellStdinFeedingContext;
};
export type ShellStdinFeedingErrorCode = "MISSING_SESSION_ID" | "MISSING_INPUT" | "INVALID_MODE" | "INPUT_TOO_LARGE" | "PERMISSION_DENIED" | "SCOPE_REJECTED" | "APPROVAL_REQUIRED" | "APPROVAL_REJECTED" | "REAL_STDIN_WRITE_BLOCKED";
export type ShellStdinFeedingError = {
    code: ShellStdinFeedingErrorCode;
    message: string;
    boundary: ShellStdinFeedingBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellStdinFeedingAuditEvent = {
    type: string;
    toolId: "shell.stdinFeeding";
    invocationId: string;
    dryRun: boolean;
    sessionId?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellStdinFeedingOutput = {
    kind: "agentCore.basicTool.shell.stdinFeeding";
    sessionId: string;
    mode: ShellStdinFeedingMode;
    appendNewline: boolean;
    inputPreview: string;
    inputBytes: number;
    requiredPermission: ShellStdinFeedingPermission;
    requiresTapApproval: boolean;
    approvalId?: string;
    dryRun: boolean;
    stdinWriteBlocked: boolean;
    unsafeSideEffects: true;
    resultEnvelope: {
        planned: boolean;
        bytesWritten?: number;
    };
};
export type ShellStdinFeedingResult = {
    ok: true;
    toolId: "shell.stdinFeeding";
    output: ShellStdinFeedingOutput;
    audit: readonly ShellStdinFeedingAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.stdinFeeding";
    error: ShellStdinFeedingError;
    audit: readonly ShellStdinFeedingAuditEvent[];
    events: readonly string[];
};
export declare const shellStdinFeedingDescriptor: {
    readonly toolId: "shell.stdinFeeding";
    readonly capability: "shell-stdin-feeding";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellInteraction";
    readonly defaultDryRun: true;
    readonly defaultMode: "text";
    readonly defaultMaxBytes: 16384;
    readonly requiredPermission: "shell:stdin:feed";
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: true;
};
export declare function planShellStdinFeeding(request?: ShellStdinFeedingRequest): ShellStdinFeedingResult;
