import { type Command } from 'commander';
import { z } from 'zod';
import type { ApiProvider } from '../../types';
export declare const ArgsSchema: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodObject<{
    config: z.ZodOptional<z.ZodString>;
    output: z.ZodOptional<z.ZodString>;
    target: z.ZodOptional<z.ZodString>;
    preview: z.ZodBoolean;
    turns: z.ZodOptional<z.ZodNumber>;
    overwrite: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}>, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}>, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}>, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}>, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}>, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}, {
    preview: boolean;
    overwrite: boolean;
    config?: string | undefined;
    output?: string | undefined;
    target?: string | undefined;
    turns?: number | undefined;
}>;
export declare const DEFAULT_TURN_COUNT = 5;
/**
 * Queries Cloud for the purpose-discovery logic, sends each logic to the target,
 * and summarizes the results.
 *
 * @param target - The target API provider.
 * @param maxTurns - The maximum number of turns to run the discovery process.
 * @returns The purpose of the target.
 */
export declare function doTargetPurposeDiscovery(target: ApiProvider, maxTurns?: number): Promise<string>;
export declare function mergePurposes(humanDefinedPurpose: string, discoveredPurpose: string): string;
/**
 * Registers the `discover` command with the CLI.
 */
export declare function discoverCommand(program: Command): void;
//# sourceMappingURL=discover.d.ts.map