import type { ViewModel } from '../main/view-model.js';
import type { NormalizedViewConfig, RawViewConfig, SingleViewConfig, ViewPopup } from '../core/view.js';
import { ContentRect } from '../core/utils/size.js';
export type NavItemConfig = Omit<SingleViewConfig, 'view'> & {
    view?: string;
};
export type NavItem = NormalizedViewConfig & {
    name?: string;
};
export declare class NavItemArray {
    items: NavItem[];
    host: ViewModel;
    baseConfig: RawViewConfig | undefined;
    constructor(host: ViewModel, baseConfig?: RawViewConfig);
    insert(config: NavItemConfig, position?: 'before' | 'after' | number, ref?: string): void;
    prepend(config: NavItemConfig): void;
    append(config: NavItemConfig): void;
    before(name: string, config: NavItemConfig): void;
    after(name: string, config: NavItemConfig): void;
    replace(name: string, config: NavItemConfig): void;
    remove(name: string): NavItem | undefined;
}
export * as buttons from './buttons.js';
export declare class ViewModelNavigation extends NavItemArray {
    host: ViewModel;
    popup: ViewPopup | null;
    data: any;
    context: any;
    config: RawViewConfig;
    primary: NavItemArray;
    secondary: NavItemArray;
    menu: NavItemArray;
    contentRect: ContentRect;
    constructor(host: ViewModel, baseConfig?: RawViewConfig);
    render(el: HTMLElement, data: any, context: any): void;
}
