import { CrowdinContextInfo, UiModule } from '../../types';
import Crowdin from '@crowdin/crowdin-api-client';
export declare enum PromptActions {
    PRE_TRANSLATE = "pre_translate",
    ASSIST = "assist",
    QA_CHECK = "qa_check"
}
export interface AiPromptProviderModule extends UiModule {
    /**
     * generates prompt text based on provided options
     */
    compile: (options: {
        options: any;
        payload: any;
        client: Crowdin;
        context: CrowdinContextInfo;
        requestData: any;
    }) => Promise<string>;
    /**
     * Represents a collection of supported actions. If not provided, all actions are supported.
     */
    actions?: PromptActions[] | `custom:${string}`[];
    /**
     * Allow auto-retry on QA issues in user interface.
     * Default: true
     */
    allowRetryOnQaIssues?: boolean;
    /**
     * Optional handler that returns prompt status info (used providers, configuration state, errors).
     * When provided, Crowdin will call this to display real-time status for external prompts.
     */
    status?: (options: {
        options: any;
        aiPromptId: number;
        client: Crowdin;
        context: CrowdinContextInfo;
    }) => Promise<{
        usedAiProviderIds: number[];
        isConfigured: boolean;
        errors: Array<{
            code: string;
            message: string;
        }>;
        warnings: Array<{
            code: string;
            message: string;
        }>;
    }>;
}
