import * as _angular_core from '@angular/core';
import { TemplateRef } from '@angular/core';
import { MatTabGroup } from '@angular/material/tabs';
import { Color } from '@sdcorejs/utils/models';

declare class SdTab {
    label: _angular_core.InputSignal<string>;
    icon: _angular_core.InputSignal<string | null | undefined>;
    badge: _angular_core.InputSignal<string | number | null | undefined>;
    disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
    closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
    close: _angular_core.OutputEmitterRef<void>;
    bodyTpl: _angular_core.Signal<TemplateRef<unknown>>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdTab, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdTab, "sd-tab", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["*"], true, never>;
}

interface SdTabClosedEvent {
    index: number;
    tab: SdTab;
}
declare class SdTabGroup {
    tabs: _angular_core.Signal<readonly SdTab[]>;
    selectedIndex: _angular_core.ModelSignal<number>;
    variant: _angular_core.InputSignal<"line" | "pills" | "segmented">;
    color: _angular_core.InputSignal<Color>;
    headerPosition: _angular_core.InputSignal<"above" | "below">;
    alignTabs: _angular_core.InputSignal<"start" | "center" | "end">;
    stretchTabs: _angular_core.InputSignalWithTransform<boolean, unknown>;
    animationDuration: _angular_core.InputSignal<string>;
    disableRipple: _angular_core.InputSignalWithTransform<boolean, unknown>;
    dynamicHeight: _angular_core.InputSignalWithTransform<boolean, unknown>;
    autoId: _angular_core.InputSignal<string | undefined>;
    tabClosed: _angular_core.OutputEmitterRef<SdTabClosedEvent>;
    protected matTabGroup: _angular_core.Signal<MatTabGroup | undefined>;
    get autoIdAttr(): string | null;
    get isPills(): boolean;
    get isSegmented(): boolean;
    get cssIndicator(): string;
    get cssActive(): string;
    get cssBadgeBg(): string;
    get cssBadgeColor(): string;
    constructor();
    selectTab(index: number): void;
    realignInkBar(): void;
    protected onClose(tab: SdTab, index: number, event: MouseEvent): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdTabGroup, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdTabGroup, "sd-tab-group", never, { "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "headerPosition": { "alias": "headerPosition"; "required": false; "isSignal": true; }; "alignTabs": { "alias": "alignTabs"; "required": false; "isSignal": true; }; "stretchTabs": { "alias": "stretchTabs"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "dynamicHeight": { "alias": "dynamicHeight"; "required": false; "isSignal": true; }; "autoId": { "alias": "autoId"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "tabClosed": "tabClosed"; }, ["tabs"], never, true, never>;
}

export { SdTab, SdTabGroup };
export type { SdTabClosedEvent };
