import { z } from 'zod';
import type { HelperTool, InternalToolArgs } from '../../types.js';
import { type ActorDetailsResult } from '../../utils/actor_details.js';
import { buildMCPResponse } from '../../utils/mcp.js';
/**
 * Shared schema for actor details output options.
 *
 * Behavior:
 * - If output is undefined or empty object: use defaults (all true except mcpTools and outputSchema)
 * - If any property is explicitly set: only include sections with explicit true values
 */
export declare const actorDetailsOutputOptionsSchema: z.ZodObject<{
    description: z.ZodOptional<z.ZodBoolean>;
    stats: z.ZodOptional<z.ZodBoolean>;
    pricing: z.ZodOptional<z.ZodBoolean>;
    rating: z.ZodOptional<z.ZodBoolean>;
    metadata: z.ZodOptional<z.ZodBoolean>;
    inputSchema: z.ZodOptional<z.ZodBoolean>;
    readme: z.ZodOptional<z.ZodBoolean>;
    outputSchema: z.ZodOptional<z.ZodBoolean>;
    mcpTools: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strip>;
export declare const actorDetailsOutputDefaults: {
    description: boolean;
    stats: boolean;
    pricing: boolean;
    rating: boolean;
    metadata: boolean;
    inputSchema: boolean;
    readme: boolean;
    outputSchema: boolean;
    mcpTools: boolean;
};
export type ResolvedOutputOptions = typeof actorDetailsOutputDefaults;
/**
 * Resolve output options with smart defaults.
 * If output is undefined/empty, returns defaults.
 * If any property is explicitly set, undefined properties are treated as false.
 */
export declare function resolveOutputOptions(output?: z.infer<typeof actorDetailsOutputOptionsSchema>): ResolvedOutputOptions;
/**
 * Zod schema for fetch-actor-details arguments — used by the mode-independent
 * base tool. The `-widget` sibling has its own `actor`-only schema in
 * `src/tools/apps/fetch_actor_details_widget.ts`.
 */
export declare const fetchActorDetailsToolArgsSchema: z.ZodObject<{
    actor: z.ZodString;
    output: z.ZodOptional<z.ZodObject<{
        description: z.ZodOptional<z.ZodBoolean>;
        stats: z.ZodOptional<z.ZodBoolean>;
        pricing: z.ZodOptional<z.ZodBoolean>;
        rating: z.ZodOptional<z.ZodBoolean>;
        metadata: z.ZodOptional<z.ZodBoolean>;
        inputSchema: z.ZodOptional<z.ZodBoolean>;
        readme: z.ZodOptional<z.ZodBoolean>;
        outputSchema: z.ZodOptional<z.ZodBoolean>;
        mcpTools: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>;
}, z.core.$strip>;
/**
 * Tool metadata for the mode-independent `fetch-actor-details` — everything
 * except the `call` handler. No widget `_meta`; the `-widget` sibling (apps-only)
 * carries its own widget metadata.
 */
export declare const fetchActorDetailsMetadata: Omit<HelperTool, 'call'>;
/**
 * Build error response for when actor is not found.
 */
export declare function buildActorNotFoundResponse(actorName: string): ReturnType<typeof buildMCPResponse>;
/**
 * Build text and structured response for actor details.
 * Pure/sync: the caller pre-resolves `mcpToolsMessage` when `output.mcpTools` is true.
 */
export declare function buildActorDetailsTextResponse(options: {
    details: ActorDetailsResult;
    output: ResolvedOutputOptions;
    actorOutputSchema?: Record<string, unknown> | null;
    mcpToolsMessage?: string;
}): {
    texts: string[];
    structuredContent: Record<string, unknown>;
};
/**
 * Shared handler for the base fetch-actor-details tool.
 * Returns the same text + structured response in both modes.
 */
export declare function buildFetchActorDetailsResult(toolArgs: InternalToolArgs): Promise<ReturnType<typeof buildMCPResponse>>;
//# sourceMappingURL=fetch_actor_details_common.d.ts.map