export type ShellCapabilityDetectionPermission = "shell:detect" | "shell:probe";
export type ShellCapabilityDetectionBoundary = "input" | "scope" | "permission" | "contract" | "governance" | "provider";
export type ShellCapabilityName = "command-execution" | "script-execution" | "pipeline" | "environment-expansion" | "interactive-session" | "job-control" | "posix-signals";
export type ShellCapabilityStatus = "supported" | "unsupported" | "unknown";
export type ShellCapabilityDetectionContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        allowed?: boolean;
        accepted?: boolean;
        reason?: string;
    };
    allowedShellExecutables?: readonly string[];
    grantedPermissions?: readonly ShellCapabilityDetectionPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ShellCapabilityDetectionTarget = {
    shellExecutable: string;
    shellKind?: string;
    reportedVersion?: string;
    requestedCapabilities?: readonly ShellCapabilityName[];
};
export type ShellCapabilityDetectionRequest = {
    target?: Partial<ShellCapabilityDetectionTarget>;
    context?: ShellCapabilityDetectionContext;
    provider?: ShellCapabilityDetectionProvider;
};
export type ShellCapabilityDetectionErrorCode = "MISSING_SHELL_EXECUTABLE" | "INVALID_SHELL_EXECUTABLE" | "INVALID_SHELL_KIND" | "INVALID_CAPABILITY_LIST" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "REAL_PROBE_BLOCKED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type ShellCapabilityDetectionError = {
    code: ShellCapabilityDetectionErrorCode;
    message: string;
    boundary: ShellCapabilityDetectionBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type ShellCapabilityDetectionAuditEvent = {
    type: string;
    toolId: "shell.capabilityDetection";
    invocationId: string;
    dryRun: boolean;
    shellExecutable?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type ShellCapabilityFinding = {
    capability: ShellCapabilityName;
    status: ShellCapabilityStatus;
    confidence: "inferred" | "unverified";
    evidence: string;
};
export type ShellCapabilityDetectionOutput = {
    kind: "agentCore.basicTool.shell.capabilityDetection";
    target: Required<Pick<ShellCapabilityDetectionTarget, "shellExecutable">> & Pick<ShellCapabilityDetectionTarget, "shellKind" | "reportedVersion">;
    requestedCapabilities: readonly ShellCapabilityName[];
    findings: readonly ShellCapabilityFinding[];
    permissionsRequired: readonly ShellCapabilityDetectionPermission[];
    dryRun: boolean;
    executionBlocked: boolean;
    unsafeSideEffects: false;
    probePlan: {
        operation: "detect-shell-capabilities";
        realProbeRequired: boolean;
        shellExecutable: string;
    };
};
export type ShellCapabilityDetectionProviderRequest = {
    target: ShellCapabilityDetectionTarget;
    context?: ShellCapabilityDetectionContext;
};
export type ShellCapabilityDetectionProvider = (request: ShellCapabilityDetectionProviderRequest) => ShellCapabilityDetectionOutput | Promise<ShellCapabilityDetectionOutput>;
export type ShellCapabilityDetectionResult = {
    ok: true;
    toolId: "shell.capabilityDetection";
    output: ShellCapabilityDetectionOutput;
    audit: readonly ShellCapabilityDetectionAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "shell.capabilityDetection";
    error: ShellCapabilityDetectionError;
    audit: readonly ShellCapabilityDetectionAuditEvent[];
    events: readonly string[];
};
export declare const shellCapabilityDetectionDescriptor: {
    readonly toolId: "shell.capabilityDetection";
    readonly capability: "detect-shell-capabilities";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.shellBase.shellDetection";
    readonly defaultDryRun: true;
    readonly tapOwnsApproval: true;
    readonly permissionsRequired: readonly ["shell:detect"];
    readonly unsafeSideEffects: false;
};
export declare function planShellCapabilityDetection(request?: ShellCapabilityDetectionRequest): ShellCapabilityDetectionResult;
export declare function executeShellCapabilityDetection(request?: ShellCapabilityDetectionRequest): Promise<ShellCapabilityDetectionResult>;
