/**
 *              Copyright (c) 2025 Visa, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 **/
import { BooleanInput } from '@angular/cdk/coercion';
import { AfterContentInit, ChangeDetectorRef, QueryList } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { AppReadyService } from '../_utilities/services/app-stable-check.service';
import { UUIDService } from '../_utilities/services/uuid.service';
import { CheckboxDirective } from '../checkbox/checkbox.directive';
import { RadioDirective } from '../radio/radio.directive';
import { ToggleButtonDirective } from '../toggle-button/toggle-button.directive';
import * as i0 from "@angular/core";
export declare class ToggleContainerDirective implements ControlValueAccessor, AfterContentInit {
    private uuidService;
    private cdRef;
    private appReadyService;
    radios: QueryList<RadioDirective>;
    checkboxes: QueryList<CheckboxDirective>;
    buttons: QueryList<ToggleButtonDirective>;
    /**
     * Sets custom name.
     * @default this.uuidService.getUUID('v-toggle-');
     * @builtin true
     */
    name: string;
    /**
     * Provides custom class&#40;es&#41; for custom styling.
     * @default .v-toggle-container
     */
    class: string;
    get hostClasses(): string;
    /**
     * Allows multiple buttons to be selected when true. <br />
     * To be used with child Button components, not Radio or Checkbox.
     * @default false
     */
    get multiselect(): boolean;
    set multiselect(value: BooleanInput);
    _multiselect: boolean;
    /**
     * Sets component as disabled when true.
     * @default false
     */
    get disabled(): boolean;
    set disabled(value: BooleanInput);
    _disabled: boolean;
    get hostDisabled(): "disabled" | null;
    /** Fires when a formControl's disabled state updates.  */
    setDisabledState(isDisabled: boolean): void;
    /**
     * Marks component as invalid when true.
     * @default false
     */
    get invalid(): boolean;
    set invalid(value: BooleanInput);
    _invalid: boolean;
    get ariaInvalid(): boolean;
    /**
     * Marks component as required when true.
     * @default false
     */
    get required(): boolean;
    set required(value: BooleanInput);
    _required: boolean;
    /**
     * Value of toggle button.
     */
    get value(): (string | number)[] | string | number | null;
    set value(value: (string | number)[] | string | number | null);
    _value: (string | number)[] | string | number | null;
    updateValue(value: (string | number)[] | string | number | null): void;
    constructor(uuidService: UUIDService, cdRef: ChangeDetectorRef, appReadyService: AppReadyService);
    ngAfterContentInit(): void;
    handleBlur(event: Event): void;
    setUpButtons(): void;
    setUpRadios(): void;
    setUpCheckboxes(): void;
    onChange: (_: any) => void;
    onTouched: (_: any) => void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    writeValue(value: (string | number)[] | string | number | null): void;
    clear(): void;
    updateCheckboxRadioVal(item: RadioDirective | CheckboxDirective, checked?: boolean): void;
    unsubscribeFromListeners(items: QueryList<RadioDirective> | QueryList<CheckboxDirective> | QueryList<ToggleButtonDirective>): void;
    informDisabledState(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToggleContainerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ToggleContainerDirective, "[v-toggle-container]", never, { "name": { "alias": "name"; "required": false; }; "class": { "alias": "class"; "required": false; }; "multiselect": { "alias": "multiselect"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "required": { "alias": "required"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, ["radios", "checkboxes", "buttons"], never, true, never>;
}
