export type GitShowObjectDetailsPermission = "git:read" | "filesystem:read";
export type GitObjectDetailsFormat = "summary" | "patch" | "raw";
export type GitShowObjectDetailsGuard = {
    allowed?: boolean;
    accepted?: boolean;
    reason?: string;
};
export type GitShowObjectDetailsContext = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: GitShowObjectDetailsGuard;
    allowedRepositoryRoots?: readonly string[];
    grantedPermissions?: readonly GitShowObjectDetailsPermission[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type GitShowObjectDetailsTarget = {
    repositoryPath: string;
    objectRef: string;
    format: GitObjectDetailsFormat;
    maxBytes: number;
};
export type GitShowObjectDetailsRequest = {
    target?: Partial<GitShowObjectDetailsTarget>;
    context?: GitShowObjectDetailsContext;
    provider?: GitShowObjectDetailsProvider;
    timeoutMs?: number;
    metadata?: Readonly<Record<string, unknown>>;
    runtimeId?: string;
    invocationId?: string;
    repositoryPath?: string;
    objectRef?: string;
    format?: GitObjectDetailsFormat;
    maxBytes?: number;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    dryRun?: boolean;
};
export type GitShowObjectDetailsRuntimeEntry = {
    owner: "runtime";
    port: "BaseToolExecutorPort.git.runGit";
    method: "runGit";
    binary: "git";
    argvMode: "fixed-show-read";
    allowedSubcommand: "show";
};
export type GitShowObjectDetailsRisk = {
    category: "read-only-inspection";
    riskLevel: "normal";
    mutatesRepository: false;
    mutatesWorkingTree: false;
    spawnsProcess: true;
    requiresTapApproval: true;
    runtimeOwnsExecution: true;
};
export type GitShowObjectDetailsCommitEnvelope = {
    commit?: string;
    tree?: string;
    parents: readonly string[];
    author?: string;
    committer?: string;
    subject?: string;
};
export type GitShowObjectDetailsEnvelope = {
    parser: "git-show-output-v1";
    objectRef: string;
    format: GitObjectDetailsFormat;
    lineCount: number;
    byteCount: number;
    truncated: boolean;
    stdoutPreview: string;
    commit?: GitShowObjectDetailsCommitEnvelope;
};
export type GitShowObjectDetailsOutput = {
    kind: "agentCore.basicTool.git.showGitObjectDetails";
    target: GitShowObjectDetailsTarget;
    runtimeEntry: GitShowObjectDetailsRuntimeEntry;
    risk: GitShowObjectDetailsRisk;
    gitArgs: readonly string[];
    commandPreview: readonly string[];
    timeoutMs: number;
    dryRun: boolean;
    executionBlocked: boolean;
    providerCalled: boolean;
    exitCode?: number;
    stdout?: string;
    stderr?: string;
    permissionsRequired: readonly GitShowObjectDetailsPermission[];
    unsafeSideEffects: false;
    resultEnvelope: GitShowObjectDetailsEnvelope;
};
export type GitShowObjectDetailsPlan = {
    toolId: "git.showGitObjectDetails";
    toolKind: "git.showGitObjectDetails";
    capability: "show-git-object-details";
    runtimeId: string;
    invocationId: string;
    repositoryPath: string;
    objectRef: string;
    format: GitObjectDetailsFormat;
    maxBytes: number;
    gitArgs: readonly string[];
    commandPreview: readonly string[];
    requiredPermissions: readonly GitShowObjectDetailsPermission[];
    runtimeEntry: GitShowObjectDetailsRuntimeEntry;
    risk: GitShowObjectDetailsRisk;
    dispatch: "dry-run" | "runtime-git-executor";
    dryRun: boolean;
    wouldReadGitObject: true;
    unsafeSideEffects: false;
    outputEnvelope: {
        stdoutPreview: "";
        stderrPreview: "";
        parsed: false;
    };
    audit: {
        guard: "git-show-runtime-guard";
        event: "basicTool.git.showGitObjectDetails.planned";
        governanceRequired: true;
        tapCanWrap: true;
        metadata: Readonly<Record<string, unknown>>;
    };
};
export type GitShowObjectDetailsErrorBoundary = "input" | "scope" | "permission" | "governance" | "provider";
export type GitShowObjectDetailsErrorCode = "MISSING_REPOSITORY_PATH" | "MISSING_OBJECT_REF" | "INVALID_ARGUMENT" | "INVALID_CONTEXT" | "INVALID_OBJECT_REF" | "INVALID_DETAILS_FORMAT" | "INVALID_MAX_BYTES" | "INVALID_TIMEOUT" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "GOVERNANCE_REJECTED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type GitShowObjectDetailsError = {
    code: GitShowObjectDetailsErrorCode;
    message: string;
    boundary: GitShowObjectDetailsErrorBoundary;
    publicSafe: true;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type GitShowObjectDetailsAuditEvent = {
    type: string;
    toolId: "git.showGitObjectDetails";
    invocationId: string;
    dryRun: boolean;
    repositoryPath?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type GitShowObjectDetailsResult = {
    ok: true;
    toolId: "git.showGitObjectDetails";
    output: GitShowObjectDetailsOutput;
    plan: GitShowObjectDetailsPlan;
    audit: readonly GitShowObjectDetailsAuditEvent[];
    events: readonly string[];
} | {
    ok: false;
    toolId: "git.showGitObjectDetails";
    error: GitShowObjectDetailsError;
    audit: readonly GitShowObjectDetailsAuditEvent[];
    events: readonly string[];
};
export type GitShowObjectDetailsProviderRequest = {
    repositoryPath: string;
    args: readonly string[];
    timeoutMs?: number;
};
export type GitShowObjectDetailsProviderResult = {
    exitCode: number;
    stdout: string;
    stderr: string;
};
export type GitShowObjectDetailsProvider = (request: GitShowObjectDetailsProviderRequest, context: GitShowObjectDetailsContext) => GitShowObjectDetailsProviderResult | Promise<GitShowObjectDetailsProviderResult>;
export declare const gitShowObjectDetailsDescriptor: {
    readonly toolId: "git.showGitObjectDetails";
    readonly toolKind: "git.showGitObjectDetails";
    readonly capability: "show-git-object-details";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.gitBase.inspection";
    readonly supportedFormats: readonly ["summary", "patch", "raw"];
    readonly defaultFormat: "summary";
    readonly defaultMaxBytes: 128000;
    readonly defaultDryRun: true;
    readonly defaultDispatch: "dry-run";
    readonly tapOwnsApproval: true;
    readonly requiresTapApproval: true;
    readonly runtimeEntryPort: "BaseToolExecutorPort.git.runGit";
    readonly operationRisk: "read-only-inspection";
    readonly permissionsRequired: readonly ["git:read", "filesystem:read"];
    readonly defaultTimeoutMs: 30000;
    readonly maxTimeoutMs: 600000;
    readonly unsafeSideEffects: false;
};
export declare const showGitObjectDetailsDescriptor: {
    readonly toolId: "git.showGitObjectDetails";
    readonly toolKind: "git.showGitObjectDetails";
    readonly capability: "show-git-object-details";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.gitBase.inspection";
    readonly supportedFormats: readonly ["summary", "patch", "raw"];
    readonly defaultFormat: "summary";
    readonly defaultMaxBytes: 128000;
    readonly defaultDryRun: true;
    readonly defaultDispatch: "dry-run";
    readonly tapOwnsApproval: true;
    readonly requiresTapApproval: true;
    readonly runtimeEntryPort: "BaseToolExecutorPort.git.runGit";
    readonly operationRisk: "read-only-inspection";
    readonly permissionsRequired: readonly ["git:read", "filesystem:read"];
    readonly defaultTimeoutMs: 30000;
    readonly maxTimeoutMs: 600000;
    readonly unsafeSideEffects: false;
};
export declare function parseGitShowObjectDetails(stdout: string, target: GitShowObjectDetailsTarget): GitShowObjectDetailsEnvelope;
export declare function planShowGitObjectDetails(request?: GitShowObjectDetailsRequest): GitShowObjectDetailsResult;
export declare function executeGitShowObjectDetails(request?: GitShowObjectDetailsRequest): Promise<GitShowObjectDetailsResult>;
