import * as _angular_core from '@angular/core';
import { InjectionToken } from '@angular/core';
import { ClassValue } from 'clsx';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

declare class ZButtonGroupItemDirective {
    private readonly _group;
    private readonly _index;
    readonly isActive: _angular_core.Signal<boolean>;
    readonly index: _angular_core.Signal<number>;
    _setIndex(index: number): void;
    protected onClick(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZButtonGroupItemDirective, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ZButtonGroupItemDirective, "[z-button-group-item]", ["zButtonGroupItem"], {}, {}, never, never, true, never>;
}

declare class ZButtonGroupSeparatorComponent {
    readonly zClass: _angular_core.InputSignal<ClassValue>;
    readonly zOrientation: _angular_core.InputSignal<"horizontal" | "vertical" | null | undefined>;
    protected readonly zClasses: _angular_core.Signal<string>;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZButtonGroupSeparatorComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZButtonGroupSeparatorComponent, "z-button-group-separator", ["zButtonGroupSeparator"], { "zClass": { "alias": "zClass"; "required": false; "isSignal": true; }; "zOrientation": { "alias": "zOrientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

interface ZButtonGroupHost {
    _selectItem(index: number): void;
    _isItemActive(index: number): boolean;
}
declare const Z_BUTTON_GROUP: InjectionToken<ZButtonGroupHost>;

declare class ZButtonGroupComponent implements ZButtonGroupHost {
    readonly zClass: _angular_core.InputSignal<ClassValue>;
    readonly zOrientation: _angular_core.InputSignal<"horizontal" | "vertical" | null | undefined>;
    readonly zActive: _angular_core.ModelSignal<number | null>;
    readonly zActiveChange: _angular_core.OutputEmitterRef<number | null>;
    private readonly _items;
    protected readonly zClasses: _angular_core.Signal<string>;
    constructor();
    _selectItem(index: number): void;
    _isItemActive(index: number): boolean;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZButtonGroupComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZButtonGroupComponent, "z-button-group", ["zButtonGroup"], { "zClass": { "alias": "zClass"; "required": false; "isSignal": true; }; "zOrientation": { "alias": "zOrientation"; "required": false; "isSignal": true; }; "zActive": { "alias": "zActive"; "required": false; "isSignal": true; }; }, { "zActive": "zActiveChange"; "zActiveChange": "zActiveChange"; }, ["_items"], ["*"], true, never>;
}

declare const zButtonGroupVariants: (props?: ({
    zOrientation?: "horizontal" | "vertical" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
declare const zButtonGroupSeparatorVariants: (props?: ({
    zOrientation?: "horizontal" | "vertical" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type ZButtonGroupVariants = VariantProps<typeof zButtonGroupVariants>;
type ZButtonGroupSeparatorVariants = VariantProps<typeof zButtonGroupSeparatorVariants>;

export { ZButtonGroupComponent, ZButtonGroupItemDirective, ZButtonGroupSeparatorComponent, Z_BUTTON_GROUP, zButtonGroupSeparatorVariants, zButtonGroupVariants };
export type { ZButtonGroupHost, ZButtonGroupSeparatorVariants, ZButtonGroupVariants };
