import type { APIGroupConfig } from '@mondaydotcomorg/atp-protocol';
import type { RuntimeAPIName } from '@mondaydotcomorg/atp-runtime';
/**
 * APIAggregator generates TypeScript type definitions from API configurations.
 * Converts API group definitions into TypeScript declarations for use in code generation.
 */
export declare class APIAggregator {
    private apiGroups;
    /**
     * Creates a new APIAggregator instance.
     * @param apiGroups - Array of API group configurations
     */
    constructor(apiGroups: APIGroupConfig[]);
    /**
     * Generates TypeScript type definitions for selected API groups.
     * @param selectedGroups - Optional array of group names to include
     * @returns TypeScript definition string
     */
    generateTypeScript(selectedGroups?: string[]): Promise<string>;
    /**
     * Generates TypeScript definitions for the runtime SDK.
     * @param options - Optional filtering options
     * @returns TypeScript definition string
     */
    generateRuntimeTypes(options?: {
        clientServices?: {
            hasLLM: boolean;
            hasApproval: boolean;
            hasEmbedding: boolean;
            hasTools: boolean;
        };
        requestedApis?: RuntimeAPIName[];
    }): string;
    /**
     * Generates TypeScript types for a single function.
     * @param func - Function definition
     * @param groupName - API group name
     * @returns TypeScript definition string
     */
    private generateFunctionTypes;
    /**
     * Converts JSON Schema type to TypeScript type.
     * @param type - JSON Schema type string
     * @returns TypeScript type string
     */
    private jsonSchemaTypeToTS;
    /**
     * Converts a full JSON Schema to TypeScript interface properties
     * @param schema - JSON Schema object
     * @param depth - Current recursion depth (prevents infinite recursion)
     * @returns TypeScript interface properties string
     */
    private jsonSchemaToTSInterface;
    /**
     * Converts any JSON Schema to a TypeScript type expression
     * @param schema - JSON Schema object
     * @param depth - Current recursion depth
     * @returns TypeScript type expression
     */
    private schemaToTSType;
    /**
     * Helper to check if a string is a valid JavaScript identifier
     */
    private isValidIdentifier;
    /**
     * Helper to safely format a property name for TypeScript type definitions
     * Returns the property name with quotes if needed, or just the name if valid
     */
    private formatPropertyName;
    /**
     * Generates the API namespace with all function declarations.
     * Handles hierarchical group names (e.g., "github/readOnly" -> api.github.readOnly)
     * @param groups - API groups to include
     * @returns TypeScript definition string
     */
    private generateAPINamespace;
    /**
     * Gets the list of available API group names.
     * @returns Array of API group names
     */
    getApiGroups(): string[];
}
//# sourceMappingURL=index.d.ts.map