import { PermissionLevel } from "../../tools2/types.js";
import { type MutationInfo } from "./analysis.js";
import type { Clark, ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
/**
 * Validates testApi inputs before permission check.
 * Throws if validation fails (e.g., mutations detected but no description provided).
 */
export declare const validateTestApiInput: (input?: {
    apiName?: string;
    description?: string;
}, mutations?: MutationInfo[]) => void;
export declare const checkTestApiPermissions: (services: ClarkStateHandlerParams, input?: {
    apiName?: string;
    description?: string;
}) => Promise<PermissionLevel>;
export declare const testApiToolFactory: import("../../tools2/types.js").ToolFactory<{
    clark: Clark;
    services: ClarkStateHandlerParams;
}, import("../../tools2/types.js").Tool<{
    apiName: string;
    inputs: Record<string, any>;
    timeout?: number | undefined;
    description?: string | undefined;
    omitStepOutputs?: boolean | undefined;
}, {
    message: string;
    result: {
        success: boolean;
        systemError: string;
        rawResult: import("@superblocksteam/library-shared/types").SdkApiExecutionResult;
        readonly error?: undefined;
        outputs?: undefined;
    };
    apiName: string;
} | {
    message: string;
    result: {
        success: boolean;
        error: {
            code: string;
            message: string;
            details?: unknown;
        } | undefined;
        systemError?: undefined;
        rawResult?: undefined;
        outputs?: undefined;
    };
    apiName: string;
} | {
    message: string;
    result: {
        success: boolean;
        outputs: string;
        systemError?: undefined;
        rawResult?: undefined;
        readonly error?: undefined;
    };
    apiName: string;
} | {
    message: string;
    result: {
        success: boolean;
        systemError: string;
        rawResult?: undefined;
        readonly error?: undefined;
        outputs?: undefined;
    };
    apiName: string;
} | {
    message: string;
    result: import("./api-executor.js").ApiExecutionResult;
    apiName: string;
} | {
    message: string;
    result: {
        stepOutputs: Record<string, {
            error?: any;
            output?: any;
        }> | undefined;
        outputs: string;
        success: boolean;
        errors?: import("./api-executor.js").ApiExecutionError[];
        systemError?: string;
        executionTime?: number;
    };
    apiName: string;
}>>;
//# sourceMappingURL=test-api.d.ts.map