/**
 *              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, EventEmitter } from '@angular/core';
import { AppReadyService } from '../_utilities/services/app-stable-check.service';
import { ButtonStackedDirective } from '../button-stacked/button-stacked.directive';
import { ButtonDirective } from '../button/button.directive';
import { FloatingUITriggerDirective } from '../floating-ui-trigger/floating-ui-trigger.directive';
import * as i0 from "@angular/core";
export declare class TabItemDirective implements AfterContentInit {
    private appReady;
    button: ButtonDirective;
    stackedButton: ButtonStackedDirective;
    trigger: FloatingUITriggerDirective;
    _roleSetByUser: boolean;
    _roleSetByTab: boolean;
    _sizeSetByTab: boolean;
    _nestedTab: boolean;
    /**
     * Provides custom class&#40;es&#41; for custom styling.
     * @default .v-tab
     */
    get class(): string;
    set class(value: string);
    _class: string;
    get hostClass(): string;
    /**
     * Sets role of tab item. <br />
     * If no custom role is set, role may be set by a parent component (nav, tabs, etc.).
     * @builtin true
     */
    get role(): string | null;
    set role(value: string | null);
    _role: string | null;
    get hostRole(): string | null;
    /**
     * Marks tab as active when true. <br />
     * Not to be used with navigational tabs. To set a navigational tab as active, view [Angular's tutorial on identifying the active route](https://angular.dev/guide/routing/router-tutorial#identify-the-active-route).
     * @default false
     */
    get active(): boolean;
    set active(value: BooleanInput);
    _active: boolean;
    /**
     * Marks the tab as a disclosure item when true. <br />
     * This item cannot be active and should expand and collapse when pressed.
     * @default false
     */
    get disclosureTab(): boolean;
    set disclosureTab(value: BooleanInput);
    _disclosureTab: boolean;
    /**
     * Marks the tab as a section title when true. <br />
     * This item titles a subset of tabs and is not interactive.
     * @default false
     */
    get sectionTitle(): boolean;
    set sectionTitle(value: BooleanInput);
    _sectionTitle: boolean;
    /**
     * Emits true when this tab is set to active.
     */
    tabActive: EventEmitter<boolean>;
    /**
     * Emits true when this tab's child button is clicked.
     */
    clicked: EventEmitter<boolean>;
    constructor(appReady: AppReadyService);
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TabItemDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TabItemDirective, "[v-tab-item]", never, { "class": { "alias": "class"; "required": false; }; "role": { "alias": "role"; "required": false; }; "active": { "alias": "active"; "required": false; }; "disclosureTab": { "alias": "disclosureTab"; "required": false; }; "sectionTitle": { "alias": "sectionTitle"; "required": false; }; }, { "tabActive": "tabActive"; "clicked": "clicked"; }, ["button", "stackedButton", "trigger"], never, true, never>;
}
