import { AXEvent, MXValueComponent, MXLookComponent } from '@acorex/cdk/common';
import * as polytype from 'polytype';
import * as _angular_core from '@angular/core';

declare class AXOtpCompletedEvent extends AXEvent {
    value: string;
    isCompleted: boolean;
}

declare const AXOtpComponent_base: polytype.Polytype.ClusteredConstructor<[{
    new (): MXValueComponent<string>;
    ɵfac: _angular_core.ɵɵFactoryDeclaration<MXValueComponent<any>, never>;
    ɵprov: _angular_core.ɵɵInjectableDeclaration<MXValueComponent<any>>;
}, typeof MXLookComponent]>;
/**
 * @category
 * A component for OTP input fields with state management and custom styling support.
 */
declare class AXOtpComponent extends AXOtpComponent_base {
    type: _angular_core.InputSignal<"number" | "text">;
    /**
     * Holds the length of the OTP input field.
     */
    length: _angular_core.ModelSignal<number>;
    /**
     * @event
     * Emits an event when the OTP input is completed.
     */
    onCompleted: _angular_core.OutputEmitterRef<AXOtpCompletedEvent>;
    /**
     * Stores the values entered in the OTP input fields.
     */
    protected inputValues: string[];
    /**
     * Holds the input values as a signal.
     */
    protected inputs: _angular_core.Signal<number[]>;
    /** @ignore */
    constructor();
    /**
     * Converts the value string to input values and updates the inputValues array.
     */
    mapValueToInputs(): void;
    /**
     * Resets the input values to an empty array.
     */
    reset(): void;
    /** @ignore */
    protected _handleOnInput(event: any, i: number): void;
    /** @ignore */
    internalSetValue(value: any): string;
    /** @ignore */
    protected calcFontSize(): void;
    /** @ignore */
    protected _handleOnKeyDown(event: KeyboardEvent, i: number): void;
    /** @ignore */
    protected _handleOnPaste(event: ClipboardEvent): void;
    /** @ignore */
    protected _handleFocus(i: any): void;
    /** @ignore */
    protected _emitOnComplete(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXOtpComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXOtpComponent, "ax-otp", never, { "state": { "alias": "state"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "look": { "alias": "look"; "required": false; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; }, { "stateChange": "stateChange"; "disabledChange": "disabledChange"; "length": "lengthChange"; "onCompleted": "onCompleted"; }, never, never, true, never>;
}

declare class AXOtpModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXOtpModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXOtpModule, never, [typeof AXOtpComponent], [typeof AXOtpComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXOtpModule>;
}

export { AXOtpCompletedEvent, AXOtpComponent, AXOtpModule };
