import { type EventEmitter } from "../../stencil-public-runtime";
import { type CustomField } from "../salla-user-profile/interfaces";
export declare class SallaCustomFields {
    /** The list of custom fields to render. Can be a JSON string or an array of objects. */
    fields: string | CustomField[];
    /** Whether the fields can be edited by the user. */
    isEditable: boolean;
    /** The URL to send file uploads to. */
    fileUploadUrl: string;
    private parsedFields;
    private fieldErrors;
    private isSubmitting;
    /** Emitted when a field's value changes. */
    fieldChanged: EventEmitter<{
        fieldId: string | number;
        value: unknown;
        isValid: boolean;
    }>;
    /** Emitted when a file is successfully uploaded or encounters an error. */
    fileUploaded: EventEmitter<{
        fieldId: string | number;
        file: File;
        isValid: boolean;
    }>;
    private get dragAndDropText();
    private get browseText();
    private get saveButtonText();
    /** Update the displayed fields programmatically. */
    setFields(fields: CustomField[]): Promise<void>;
    /** Gets the current values of all fields, formatted for submission. */
    getFieldValues(): Promise<{
        [key: string]: unknown;
    }>;
    /** Validates all required fields and updates the error state. Returns true if valid. */
    validateFields(): Promise<boolean>;
    private handleFieldChange;
    private handleFileUpload;
    private clearFieldError;
    private setFieldError;
    private renderTextField;
    private renderFileField;
    private renderField;
    componentWillLoad(): void;
    private parseFields;
    private handleSubmit;
    render(): any;
}
