import { DoCheck, EventEmitter, OnInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { FormControl } from '@angular/forms';
import { PhoneInputMetadata, PhoneInputChangeEvent, CountryCode } from './types';
import * as i0 from "@angular/core";
export declare class PhoneInputComponent implements OnInit, OnChanges, OnDestroy, DoCheck {
private presets;
/**
* Preset name to apply. Presets define reusable phone input configurations
* that can be registered at app level via provideValtechPresets().
*
* @example
*
*/
preset?: string;
/**
* Phone input configuration object. Values here override preset values.
*/
props: Partial;
/**
* Resolved props after merging preset + explicit props.
*/
resolvedProps: PhoneInputMetadata;
phoneChange: EventEmitter;
states: {
ENABLED: "ENABLED";
DISABLED: "DISABLED";
WORKING: "WORKING";
ERROR: "ERROR";
};
internalCountryControl: FormControl;
internalNumberControl: FormControl;
private valueSubscription;
private isInternalUpdate;
/** Último valor del control externo ya reflejado en el input. */
private lastSyncedValue;
ngOnInit(): void;
ngOnChanges(changes: SimpleChanges): void;
/**
* Refleja cambios del control externo que NO emiten `valueChanges` — p. ej.
* `patchValue(..., { emitEvent: false })` en una carga programática de datos.
* Sin esto el input quedaría vacío tras un `patchValue` silencioso.
*/
ngDoCheck(): void;
ngOnDestroy(): void;
/**
* Merge preset configuration with explicit props.
* Explicit props take precedence over preset values.
*/
private resolveProps;
private setupComponent;
private parsePhoneNumber;
getLabel(): string;
getPlaceholder(): string;
getHint(): string;
getCountryList(): CountryCode[];
getSelectedCountry(): CountryCode | null;
get hasError(): boolean;
getErrorMessage(): string;
onCountryChange(event: CustomEvent): void;
onNumberInput(event: CustomEvent): void;
onNumberInputNative(event: Event): void;
onBlur(): void;
private updateMainControl;
private validateNumber;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}