import { AfterContentInit, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';
import { PageMenuItemDirective } from './page-menu-item.directive';
import * as i0 from "@angular/core";
/**
* Interface representing a menu item in the page menu.
*/
export interface PageMenuItem {
/** Display label for the menu tab */
label: string;
/** Unique identifier matching the pageMenuItem directive name */
name: string;
}
/**
* PageMenuComponent provides a tabbed navigation interface using Angular Material tabs.
*
* This component allows you to define menu items with custom content templates using
* content projection. Each tab's content is defined using the `pageMenuItem` directive.
*
* @example
* ```html
*
*
* Overview Content
*
*
* Details Content
*
*
* ```
*
* @example
* ```typescript
* tabs: PageMenuItem[] = [
* { label: 'Overview', name: 'overview' },
* { label: 'Details', name: 'details' }
* ];
* ```
*/
export declare class PageMenuComponent implements AfterContentInit, OnChanges {
/**
* Array of menu items to display as tabs.
* Each item must have a corresponding ng-template with matching pageMenuItem name.
*/
menuItems: PageMenuItem[];
/** Query list of all content templates projected with pageMenuItem directive */
itemTemplates: QueryList;
/** Internal map for fast template lookup by name */
private templateMap;
/**
* Lifecycle hook that initializes the template map after content children are available.
*/
ngAfterContentInit(): void;
/**
* Lifecycle hook that responds to input property changes.
*/
ngOnChanges(changes: SimpleChanges): void;
/**
* Builds or rebuilds the internal template map from content children.
*/
private buildTemplateMap;
/**
* Retrieves the template for a given menu item name.
*
* @param name - The unique identifier of the menu item
* @returns The template reference if found, null otherwise
*/
getTemplate(name: string): TemplateRef | null;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}