export type ShellScriptGenerationPermission = "shell:script:generate";
export type ShellScriptGenerationBoundary = "input" | "permission" | "scope" | "governance" | "contract";
export type ShellScriptGenerationShell = "sh" | "bash" | "zsh";
export type ShellScriptGenerationGate = {
    accepted?: boolean;
    allowed?: boolean;
    reason?: string;
};
export type ShellScriptGenerationContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    grantedPermissions?: readonly ShellScriptGenerationPermission[];
    allowedWorkingDirectories?: readonly string[];
    guard?: ShellScriptGenerationGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellScriptGenerationTarget = {
    scriptName?: string;
    shell: ShellScriptGenerationShell;
    workingDirectory?: string;
    commands: readonly string[];
    environment?: Readonly<Record<string, string>>;
    notes?: readonly string[];
};
export type ShellScriptGenerationRequest = {
    target?: Partial<ShellScriptGenerationTarget>;
    context?: ShellScriptGenerationContext;
};
export type ShellScriptGenerationErrorCode = "MISSING_COMMANDS" | "INVALID_COMMAND" | "INVALID_SHELL" | "INVALID_SCRIPT_NAME" | "INVALID_ENVIRONMENT" | "INVALID_WORKING_DIRECTORY" | "PERMISSION_DENIED" | "SCOPE_REJECTED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED" | "REAL_EXECUTION_BLOCKED";
export type ShellScriptGenerationError = {
    code: ShellScriptGenerationErrorCode;
    message: string;
    boundary: ShellScriptGenerationBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellScriptGenerationAuditEvent = {
    type: string;
    toolId: "shell.scriptGeneration";
    invocationId: string;
    dryRun: boolean;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellScriptGenerationOutput = {
    kind: "agentCore.basicTool.shell.scriptGeneration";
    target: ShellScriptGenerationTarget;
    script: string;
    commandPreview: readonly string[];
    lineCount: number;
    requiredPermission: ShellScriptGenerationPermission;
    requiresTapApproval: boolean;
    dryRun: boolean;
    providerCalled: boolean;
    executionBlocked: true;
    unsafeSideEffects: false;
};
export type ShellScriptGenerationResult = {
    ok: true;
    toolId: "shell.scriptGeneration";
    output: ShellScriptGenerationOutput;
    audit: readonly ShellScriptGenerationAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.scriptGeneration";
    error: ShellScriptGenerationError;
    audit: readonly ShellScriptGenerationAuditEvent[];
    events: readonly string[];
};
export declare const shellScriptGenerationDescriptor: {
    readonly toolId: "shell.scriptGeneration";
    readonly capability: "shell-script-generation";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellGeneration";
    readonly defaultDryRun: true;
    readonly requiredPermission: "shell:script:generate";
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: false;
};
export declare function generateShellScriptPlan(request?: ShellScriptGenerationRequest): ShellScriptGenerationResult;
