import type { BaseToolExecutorPort } from "../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
import type { BaseToolHandler } from "../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { executeSkillIterate as executeSkillIterateCore, type SkillIterateOutput, type SkillIterateRequest } from "./core.js";
import { type SkillIterateProviderPractice } from "./dependencies.js";
import type { SkillBasePracticeProviderName } from "../_shared/baseToolAdapter.js";
export { planSkillIteration, skillIterateDescriptor, executeSkillIterate as executeSkillIterateCore } from "./core.js";
export type { SkillIterateErrorCode, SkillIterateOutput, SkillIterateRequest, SkillIterateResult, SkillIterateTarget, SkillIterationOperation, SkillIterationOperationKind } from "./core.js";
export type SkillIterateBestPracticeRequest = SkillIterateRequest & {
    executor?: BaseToolExecutorPort;
    preferredProvider?: SkillBasePracticeProviderName;
};
export type SkillIterateHandlerInput = Omit<SkillIterateBestPracticeRequest, "executor">;
export declare function selectSkillIteratePractice(dependencies?: SkillIterateBestPracticeRequest): {
    providerName: SkillBasePracticeProviderName;
    practice: SkillIterateProviderPractice;
    provider: import("../_shared/skillCore.js").SkillFilesystemProvider;
} | {
    providerName: "praxis-native";
    practice: {
        providerName: "praxis-native";
        source: {
            kind: "praxis-native";
            label: string;
            path: undefined;
        };
        directCliSupport: boolean;
        sideEffectPolicy: "runtime-governed";
        notes: string[];
        createProvider: () => undefined;
    };
    provider: undefined;
};
export declare function executeSkillIterate(request?: SkillIterateBestPracticeRequest): ReturnType<typeof executeSkillIterateCore>;
export declare const skillIterateBaseToolDefinition: import("../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<SkillIterateHandlerInput, SkillIterateOutput>;
export declare const skillIterateHandler: BaseToolHandler<SkillIterateHandlerInput, SkillIterateOutput>;
