export type ShellSessionManagementAction = "inspect" | "create" | "attach" | "detach" | "close";
export type ShellSessionManagementPermission = "shell:session:inspect" | "shell:session:create" | "shell:session:attach" | "shell:session:close";
export type ShellSessionManagementBoundary = "input" | "scope" | "permission" | "governance" | "contract";
export type ShellSessionManagementContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    allowedSessionIds?: readonly string[];
    grantedPermissions?: readonly ShellSessionManagementPermission[];
    guard?: {
        accepted?: boolean;
        allowed?: boolean;
        reason?: string;
    };
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellSessionManagementTarget = {
    action: ShellSessionManagementAction;
    sessionId?: string;
    sessionName?: string;
    shellType?: string;
    workingDirectory?: string;
    reason?: string;
};
export type ShellSessionManagementRequest = {
    target?: Partial<ShellSessionManagementTarget>;
    context?: ShellSessionManagementContext;
};
export type ShellSessionManagementErrorCode = "INVALID_ACTION" | "MISSING_SESSION_ID" | "INVALID_SESSION_ID" | "INVALID_SESSION_NAME" | "INVALID_SHELL_TYPE" | "INVALID_WORKING_DIRECTORY" | "SESSION_SCOPE_DENIED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "REAL_EXECUTION_BLOCKED";
export type ShellSessionManagementError = {
    code: ShellSessionManagementErrorCode;
    message: string;
    boundary: ShellSessionManagementBoundary;
    publicSafe: true;
    internalDetailExposed: false;
};
export type ShellSessionManagementAuditEvent = {
    type: string;
    toolId: "shell.shellSessionManagement";
    invocationId: string;
    dryRun: boolean;
    sessionId?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellSessionManagementOutput = {
    kind: "agentCore.basicTool.shell.shellSessionManagement";
    target: ShellSessionManagementTarget;
    permissionsRequired: readonly ShellSessionManagementPermission[];
    dryRun: true;
    executionBlocked: true;
    unsafeSideEffects: boolean;
    sessionEnvelope: {
        operation: ShellSessionManagementAction;
        wouldCreateSession: boolean;
        wouldAttachSession: boolean;
        wouldCloseSession: boolean;
        runtimeSessionState: "unchanged";
    };
};
export type ShellSessionManagementResult = {
    ok: true;
    toolId: "shell.shellSessionManagement";
    output: ShellSessionManagementOutput;
    audit: readonly ShellSessionManagementAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.shellSessionManagement";
    error: ShellSessionManagementError;
    audit: readonly ShellSessionManagementAuditEvent[];
    events: readonly string[];
};
export declare const shellSessionManagementDescriptor: {
    readonly toolId: "shell.shellSessionManagement";
    readonly capability: "manage-shell-sessions";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellManagement";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly unsafeSideEffects: true;
};
export declare function planShellSessionManagement(request?: ShellSessionManagementRequest): ShellSessionManagementResult;
