import { DockPassThrough, DockPosition, DockItemTemplateContext } from 'primeng/types/dock';
export * from 'primeng/types/dock';
import * as _angular_core from '@angular/core';
import { TemplateRef, ElementRef } from '@angular/core';
import * as i2 from 'primeng/api';
import { MenuItem } from 'primeng/api';
import { BaseComponent } from 'primeng/basecomponent';
import * as i1 from 'primeng/bind';
import { Bind } from 'primeng/bind';
import { BaseStyle } from 'primeng/base';

/**
 *
 * Dock is a navigation component consisting of menuitems.
 *
 * [Live Demo](https://www.primeng.org/dock/)
 *
 * @module dockstyle
 *
 */
declare enum DockClasses {
    /**
     * Class name of the root element
     */
    root = "p-dock",
    /**
     * Class name of the list container element
     */
    listContainer = "p-dock-list-container",
    /**
     * Class name of the list element
     */
    list = "p-dock-list",
    /**
     * Class name of the item element
     */
    item = "p-dock-item",
    /**
     * Class name of the item content element
     */
    itemContent = "p-dock-item-content",
    /**
     * Class name of the item link element
     */
    itemLink = "p-dock-item-link",
    /**
     * Class name of the item icon element
     */
    itemIcon = "p-dock-item-icon"
}
declare class DockStyle extends BaseStyle {
    name: string;
    style: string;
    classes: {
        root: ({ instance }: {
            instance: any;
        }) => (string | {
            'p-dock-mobile': any;
        })[];
        listContainer: string;
        list: string;
        item: ({ instance, item, id }: {
            instance: any;
            item: any;
            id: any;
        }) => (string | {
            'p-focus': any;
            'p-disabled': any;
        })[];
        itemContent: string;
        itemLink: string;
        itemIcon: string;
    };
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<DockStyle, never>;
    static ɵprov: _angular_core.ɵɵInjectableDeclaration<DockStyle>;
}
interface DockStyle extends BaseStyle {
}

/**
 * Dock is a navigation component consisting of menuitems.
 * @group Components
 */
declare class Dock extends BaseComponent<DockPassThrough> {
    componentName: string;
    /**
     * Current id state as a string.
     * @group Props
     */
    id: _angular_core.InputSignal<string | undefined>;
    /**
     * MenuModel instance to define the action items.
     * @group Props
     */
    model: _angular_core.InputSignal<MenuItem[] | null>;
    /**
     * Position of element.
     * @group Props
     */
    position: _angular_core.InputSignal<DockPosition>;
    /**
     * Defines a string that labels the input for accessibility.
     * @group Props
     */
    ariaLabel: _angular_core.InputSignal<string | undefined>;
    /**
     * The breakpoint to define the maximum width boundary.
     * @defaultValue 960px
     * @group Props
     */
    breakpoint: _angular_core.InputSignal<string>;
    /**
     * Defines a string that labels the dropdown button for accessibility.
     * @group Props
     */
    ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
    /**
     * Callback to execute when button is focused.
     * @param {FocusEvent} event - Focus event.
     * @group Emits
     */
    onFocus: _angular_core.OutputEmitterRef<FocusEvent>;
    /**
     * Callback to invoke when the component loses focus.
     * @param {FocusEvent} event - Focus event.
     * @group Emits
     */
    onBlur: _angular_core.OutputEmitterRef<FocusEvent>;
    /**
     * Custom item template.
     * @param {DockItemTemplateContext} context - item template context.
     * @group Templates
     */
    itemTemplate: _angular_core.Signal<TemplateRef<DockItemTemplateContext> | undefined>;
    listViewChild: _angular_core.Signal<ElementRef<any> | undefined>;
    private _internalId;
    $id: _angular_core.Signal<string>;
    ariaOrientation: _angular_core.Signal<"horizontal" | "vertical">;
    currentIndex: _angular_core.WritableSignal<number>;
    tabindex: number;
    focused: _angular_core.WritableSignal<boolean>;
    focusedOptionIndex: _angular_core.WritableSignal<string | number>;
    _componentStyle: DockStyle;
    bindDirectiveInstance: Bind;
    $pcDock: Dock | undefined;
    matchMediaListener: any;
    query: any;
    queryMatches: _angular_core.WritableSignal<boolean>;
    mobileActive: _angular_core.WritableSignal<boolean>;
    focusedOptionId: _angular_core.Signal<string | null>;
    activeDescendant: _angular_core.Signal<string | null | undefined>;
    getItemTabIndex(item: MenuItem): string | null;
    getRouterLinkActiveOptions(item: MenuItem): any;
    getItemUrl(item: MenuItem): string | null;
    onInit(): void;
    onDestroy(): void;
    getItemId(item: MenuItem, index: number): string;
    disabled(item: MenuItem): boolean;
    isItemActive(id: string): boolean;
    onListMouseLeave(): void;
    onItemMouseEnter(index: number): void;
    onItemClick(e: Event, item: MenuItem): void;
    onListFocus(event: FocusEvent): void;
    onListBlur(event: FocusEvent): void;
    onListKeyDown(event: KeyboardEvent): void;
    onArrowDownKey(): void;
    onArrowUpKey(): void;
    onHomeKey(): void;
    onEndKey(): void;
    onSpaceKey(): void;
    findNextOptionIndex(index: string | number): number;
    changeFocusedOptionIndex(index: number): void;
    findPrevOptionIndex(index: string | number): number;
    isClickableRouterLink(item: any): boolean;
    onAfterViewChecked(): void;
    getPTOptions(item: MenuItem, index: number, key: string): any;
    bindMatchMediaListener(): void;
    unbindMatchMediaListener(): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dock, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dock, "p-dock", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "breakpoint": { "alias": "breakpoint"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "onFocus": "onFocus"; "onBlur": "onBlur"; }, ["itemTemplate"], never, true, [{ directive: typeof i1.Bind; inputs: {}; outputs: {}; }]>;
}
declare class DockModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<DockModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<DockModule, never, [typeof Dock, typeof i2.SharedModule], [typeof Dock, typeof i2.SharedModule]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<DockModule>;
}

export { Dock, DockClasses, DockModule, DockStyle };
