import { FormControl } from "@angular/forms";
import { EasyFormField } from "./easy-form-field";
export interface EfControlData {
    id: string | null;
    control: FormControl<any> | null;
    schema: EasyFormField | null;
}
/**
 * Every form control should extend this class
 * to work with EasyFormComponent
 */
export declare class EasyFormControl {
    easyFormControl: import("@angular/core").WritableSignal<EfControlData>;
    control: import("@angular/core").Signal<FormControl<any> | null>;
    schema: import("@angular/core").Signal<EasyFormField<any> | null>;
    options: import("@angular/core").Signal<import("@yyasinaslan/easyform").SelectOptions<any> | undefined>;
    props: import("@angular/core").WritableSignal<Record<string, any>>;
    hasControl: import("@angular/core").Signal<boolean>;
    hasInitialized: import("@angular/core").Signal<boolean>;
    value: import("rxjs").Observable<any>;
    setValue(value: any): void;
    /**
     * Emit events
     * Usage: (input)="emitEvent($event)"
     * @param event
     */
    emitEvent: (event: Event) => void;
}
