import { ShowValidationErrorParameters, ValidationHelper, type WithValidation } from "jb-validation";
import type { JBFormInputStandards } from 'jb-form';
import { JBImageInputBridge, JBImageInputConfig, ValidationValue } from "./types";
export * from './types.js';
export declare class JBImageInputWebComponent<TValue = File> extends HTMLElement implements WithValidation<ValidationValue<TValue>>, JBFormInputStandards<TValue> {
    #private;
    static get formAssociated(): boolean;
    get value(): TValue | null;
    set value(value: TValue | null);
    get isAutoValidationDisabled(): boolean;
    set isAutoValidationDisabled(value: boolean);
    get selectedImageType(): string;
    get status(): string | null;
    get multiple(): boolean;
    set multiple(value: boolean);
    get acceptTypes(): string;
    set acceptTypes(value: string);
    get file(): File | null;
    imageBase64Value: string | null;
    get maxFileSize(): number | null;
    /**
     * @description max file size in bytes
     */
    set maxFileSize(value: number | null);
    get disabled(): boolean;
    set disabled(value: boolean);
    set required(value: boolean);
    get required(): boolean;
    get validation(): ValidationHelper<ValidationValue<TValue>>;
    get name(): string;
    initialValue: TValue | null;
    get isDirty(): boolean;
    constructor();
    get fileName(): string;
    config: JBImageInputConfig;
    bridge: JBImageInputBridge<TValue>;
    /**
     * @public
     * @description will open image selector
     */
    openImageSelector(): void;
    static get observedAttributes(): string[];
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /**
     * inject file to image uploader like when user select it
     * @public
     * @param {File} file
     */
    selectImageByFile(file: File): Promise<void>;
    static ExtractBase64ImageFromFile(file: File): Promise<unknown>;
    onProgressImageUpload(percent: number): void;
    showValidationError(error: ShowValidationErrorParameters | string): void;
    clearValidationError(): void;
    /**
   * @public
   * @description this method used to check for validity but doesn't show error to user and just return the result
   * this method used by #internal of component
   */
    checkValidity(): boolean;
    /**
    * @public
   * @description this method used to check for validity and show error to user
   */
    reportValidity(): boolean;
    get validationMessage(): string;
}
//# sourceMappingURL=jb-image-input.d.ts.map