import { OnInit, EventEmitter, ElementRef } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { AbstractFormControl } from '../../models/abstract-form-control';
import { ErrorMessage } from '../../models/error-message.interface';
/**
 * Checkbox component is a input checkbox
 *
 * @example
 *       <common-checkbox #addressChangeChkBx
 *          label='Do you want to opt in?'
 *          errorMessageRequired = 'Opt in should be selected'
 *          (dataChange)="dataChange($event)"
 *           [(data)]='person.hasOpted' [disabled]="isDisabled"
 *          [required]="isrequired">
 *       </common-checkbox>
 *
 * @export
 */
export declare class CheckboxComponent extends AbstractFormControl implements OnInit, ControlValueAccessor {
    controlDir: NgControl;
    defaultErrorMessage: string;
    /**
     * You can bind to [(data)] OR you can use [(ngModel)] but don't use both.
     */
    data: boolean;
    label: string;
    required: boolean;
    dataChange: EventEmitter<boolean>;
    checkbox: ElementRef;
    _defaultErrMsg: ErrorMessage;
    constructor(controlDir: NgControl);
    ngOnInit(): void;
    setCheckboxVal(event: boolean): void;
    focus(): void;
    writeValue(value: any): void;
}
