import type { Build } from 'apify-client';
import type { ApifyClient } from '../apify_client.js';
import type { PaymentProvider } from '../payments/types.js';
import type { Actor, ActorCardOptions, ActorInputSchema, StructuredActorCard } from '../types.js';
import type { PricingTier } from './pricing_info.js';
/**
 * Convert a type object to TypeScript-like string representation.
 * Used for human-readable text output.
 *
 * Example:
 * Input:  { first_number: "number", tags: ["string"], user: { name: "string" } }
 * Output: "{ first_number: number, tags: string[], user: { name: string } }"
 *
 * Values that are not string / object / array are skipped (not rendered) at every nesting level.
 */
export declare function typeObjectToString(obj: Record<string, unknown>): string;
/**
 * Resolve README content with fallback: prefer readmeSummary, fall back to full readme.
 * Returns the content string and appropriate heading for text output.
 */
export declare function resolveReadmeContent(details: {
    readmeSummary?: string;
    readme: string;
}): {
    content: string;
    heading: string;
};
export type ActorDetailsResult = {
    actorInfo: Actor;
    buildInfo: Build;
    actorCard: string;
    actorCardStructured: StructuredActorCard;
    inputSchema: ActorInputSchema;
    readme: string;
    readmeSummary?: string;
};
export declare function fetchActorDetails(apifyClient: ApifyClient, actorName: string, cardOptions?: ActorCardOptions): Promise<ActorDetailsResult | null>;
/**
 * Build the widget actor-details payload for the apps variant.
 * Returns the Actor URL and the structured `actorDetails` object.
 */
export declare function buildActorDetailsForWidget(details: ActorDetailsResult, userTier: PricingTier): {
    actorUrl: string;
    actorDetails: {
        actorInfo: import("./actor_card.js").WidgetActor;
        actorCard: string;
        readme: string;
        inputSchema: ActorInputSchema;
    };
};
/**
 * Gets MCP tools information for an Actor.
 * Returns a message about available tools, error, or that the Actor is not an MCP server.
 */
export declare function getMcpToolsMessage(actorName: string, apifyClient: ApifyClient, apifyToken: string, paymentProvider?: PaymentProvider, mcpSessionId?: string): Promise<string>;
/**
 * Build card options from resolved output flags.
 * Maps boolean output flags to card rendering options (explicit true required).
 * Caller adds `userTier` if needed — this helper stays focused on flags.
 */
export declare function buildCardOptions(output: {
    description: boolean;
    stats: boolean;
    pricing: boolean;
    rating: boolean;
    metadata: boolean;
}): ActorCardOptions;
//# sourceMappingURL=actor_details.d.ts.map