import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, WritableSignal } from '@angular/core';
import { FocusableOption, FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';
import { MultiSelectService } from '../multi-select.service';
import * as i0 from "@angular/core";
export declare class MultiSelectOptionComponent implements AfterViewInit, FocusableOption {
    #private;
    readonly elementRef: ElementRef;
    private readonly changeDetectorRef;
    private readonly focusMonitor;
    private readonly multiSelectService;
    constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor, multiSelectService: MultiSelectService);
    /**
     * Option style
     * @type ('checkbox' | 'text')
     * @default 'checkbox'
     */
    optionsStyle: ('checkbox' | 'text');
    /**
     * Option label
     * @type string
     * @default undefined
     */
    label?: string;
    /**
     * Option inner text
     * @type string
     * @default undefined
     */
    text?: string;
    /**
     * Option visible.
     * @type boolean
     * @default true
     */
    set visible(value: boolean);
    get visible(): boolean;
    /**
     * Option disabled.
     * @type boolean
     * @default false
     */
    disabled: boolean;
    /**
     * Option selected.
     * @type boolean
     * @default false
     */
    set selected(value: (boolean | undefined));
    get selected(): (boolean | undefined);
    /**
     * Emits option selected change
     * @type boolean
     */
    readonly selectedChange: EventEmitter<boolean>;
    /**
     * Option value.
     * @type string | number
     * @default undefined
     */
    set value(value: string | number);
    get value(): string | number;
    private contentDiv?;
    hasContent: WritableSignal<boolean>;
    set active(value: (boolean));
    get active(): (boolean);
    readonly focusChange: EventEmitter<MultiSelectOptionComponent>;
    private get role();
    get hostClasses(): {
        [x: string]: boolean | undefined;
        'form-multi-select-option': boolean;
        'form-multi-selected': boolean | undefined;
        disabled: boolean;
        'd-none': boolean;
        active: boolean;
        focused: boolean;
    };
    private get tabIndex();
    private get ariaDisabled();
    private get ariaSelected();
    onKeyDown($event: KeyboardEvent): void;
    private onBlur;
    private onFocus;
    private onKeyUp;
    private onClick;
    ngAfterViewInit(): void;
    /** Get the label for this element which is required by the FocusableOption interface. */
    getLabel(): string;
    focus(origin?: FocusOrigin): void;
    private setSubscriptions;
    isSelected(value?: string | number): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectOptionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectOptionComponent, "c-multi-select-option", ["cMultiSelectOption"], { "optionsStyle": { "alias": "optionsStyle"; "required": false; }; "label": { "alias": "label"; "required": false; }; "text": { "alias": "text"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "value": { "alias": "value"; "required": false; }; "active": { "alias": "active"; "required": false; }; "role": { "alias": "role"; "required": false; }; }, { "selectedChange": "selectedChange"; "focusChange": "focusChange"; }, never, ["*"], true, never>;
    static ngAcceptInputType_visible: unknown;
    static ngAcceptInputType_disabled: unknown;
    static ngAcceptInputType_active: unknown;
}
