import { type SkillBaseContext, type SkillBasePermission, type SkillFilesystemProvider } from "../_shared/skillCore.js";
import type { SkillToolResult } from "../_shared/baseToolAdapter.js";
export type SkillSummarySource = {
    path?: string;
    heading?: string;
    content: string;
};
export type SkillSummarizeTarget = {
    skillId: string;
    skillPath?: string;
    title?: string;
    description?: string;
    sourceExcerpts: readonly SkillSummarySource[];
    maxBullets: number;
    metadataBudgetCharacters: number;
};
export type SkillSummarizeRequest = {
    target?: unknown;
    context?: SkillBaseContext;
    provider?: SkillFilesystemProvider;
};
export type SkillSummarizeErrorCode = "MISSING_SKILL_ID" | "INVALID_SKILL_ID" | "INVALID_MAX_BULLETS" | "SOURCE_TOO_LARGE" | "SCOPE_REJECTED" | "PERMISSION_DENIED" | "PROVIDER_UNAVAILABLE" | "PROVIDER_REJECTED";
export type SkillSummarizeOutput = {
    kind: "agentCore.basicTool.skill.summarize.output";
    target: SkillSummarizeTarget;
    runtimeEntry: {
        port: "BaseToolExecutorPort.filesystem.readText";
        runtimeOwnsFilesystem: true;
    };
    summaryEnvelope: {
        skillId: string;
        modelVisibleLine: string;
        summary: string;
        bullets: readonly string[];
        sourceCount: number;
        truncated: boolean;
    };
    dryRun: boolean;
    executionBlocked: boolean;
    permissionsRequired: readonly SkillBasePermission[];
    unsafeSideEffects: false;
};
export type SkillSummarizeResult = SkillToolResult<SkillSummarizeOutput, SkillSummarizeErrorCode>;
export declare const skillSummarizeDescriptor: {
    readonly toolId: "skill.summarize";
    readonly capability: "summarize-skill";
    readonly defaultDryRun: true;
    readonly permissionsRequired: readonly ["skill:read"];
    readonly maxSourceCharacters: 24000;
};
export declare function executeSkillSummarize(request?: SkillSummarizeRequest): Promise<SkillSummarizeResult>;
export declare const planSkillSummarize: typeof executeSkillSummarize;
