export interface SurveyConfig {
    dataKey: string;
    dataMode: string;
    dataAttributes?: any;
    beforeSubmitValidation?: (payload: {
        sender: any;
        results: any;
    }) => boolean | Promise<boolean>;
    onSubmitError?: (errorMessage: string, payload?: {
        sender: any;
    }) => void;
    formSubmitRenderCallback?: (processedResults: {
        sender: any;
        results: any;
        response: any;
        completedHtml: string;
        completeText: string;
        domId: string;
        keyName: string;
        jsonData: string;
    }) => void;
}
export interface SurveyRenderOptions {
    chat: any;
    surveyDomId: string;
    shadowRoot: ShadowRoot;
    config: SurveyConfig;
}
export declare class SurveyRenderer {
    private config;
    private honeypotFieldName;
    constructor(config: SurveyConfig);
    /**
     * Initialize Survey.js library and add custom properties
     */
    initializeSurveyLibrary(): void;
    /**
     * Prepare and validate form model
     */
    prepareFormModel(chat: any): any;
    private injectHoneypotField;
    private hasField;
    /**
     * Determine the best locale for the survey
     */
    determineLocale(formModel: any): string;
    /**
     * Configure survey instance
     */
    configureSurvey(survey: any, formModel: any, chat: any): void;
    /**
     * Hide complete button if form contains iframe elements
     */
    private hideCompleteButtonForIframes;
    /**
     * Handle survey results submission
     */
    private handleSurveyResults;
    private getHoneypotValue;
    /**
     * Prepare survey results
     */
    private prepareResults;
    /**
     * Resolve localized values
     */
    private resolveLocalized;
    /**
     * Main render method
     */
    renderSurvey(options: SurveyRenderOptions): Promise<any>;
    /**
     * Handle survey rendering errors
     */
    private handleSurveyError;
}
export declare function renderSurvey(options: SurveyRenderOptions): Promise<any>;
export declare function createSurveyRenderer(config: SurveyConfig): SurveyRenderer;
