import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { ViewWillEnter, ViewWillLeave } from '@ionic/angular/standalone';
import { ContainerSize } from '../../atoms/container/types';
import { PageRefreshService } from '../../../services/page-refresh/page-refresh.service';
import { PageWrapperMetadata } from './types';
import * as i0 from "@angular/core";
/**
 * val-page-wrapper
 *
 * A complete page wrapper template with header, router outlet, footer,
 * and automatic scroll-to-top on navigation.
 *
 * @example
 * <val-page-wrapper
 *   [props]="{
 *     homeRoute: '/',
 *     scrollToTopOnNavigate: true,
 *     footer: {
 *       links: { ... },
 *       rights: { companyName: 'Acme' }
 *     }
 *   }"
 * ></val-page-wrapper>
 *
 * @input props - Page wrapper configuration
 * @output onHeaderClick - Emits when a header action is clicked
 */
export declare class PageWrapperComponent implements ViewWillEnter, ViewWillLeave, OnInit, OnDestroy {
    private theme;
    private nav;
    private router;
    private routerSubscription?;
    /** Bus del pull-to-refresh — la página activa registra su handler aquí. */
    protected pageRefresh: PageRefreshService;
    /**
     * Handler del gesto pull-to-refresh (`ion-refresher` ionRefresh). Delega en
     * el handler que registró la página activa y cierra el spinner al terminar.
     */
    onPageRefresh(event: Event): Promise<void>;
    /**
     * Page wrapper configuration.
     * Signal-based input for full reactivity with computed().
     */
    readonly props: import("@angular/core").InputSignal<PageWrapperMetadata>;
    /**
     * Emits when a header action is clicked.
     */
    onHeaderClick: EventEmitter<string>;
    /**
     * Default header configuration (cached to avoid infinite change detection).
     */
    private readonly defaultHeader;
    headerProps: import("@angular/core").Signal<import("valtech-components").HeaderMetadata | {
        bordered: boolean;
        translucent: boolean;
        toolbar: {
            withBack: boolean;
            withActions: boolean;
            textColor: "dark";
            withMenu: boolean;
            title: string;
            actions: {
                token: string;
                description: string;
                position: "left";
                type: "IMAGE";
                image: {
                    width: number;
                    src: string;
                    alt: string;
                    mode: "box";
                    shaded: boolean;
                    bordered: boolean;
                    size: "small";
                    limited: boolean;
                    flex: boolean;
                };
            }[];
        };
    }>;
    contentId: import("@angular/core").Signal<string>;
    propsFooter: import("@angular/core").Signal<import("valtech-components").CompanyFooterMetadata>;
    contentMaxWidth: import("@angular/core").Signal<ContainerSize>;
    background: import("@angular/core").Signal<string>;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ionViewWillLeave(): void;
    ionViewWillEnter(): void;
    /**
     * Scrolls the content to the top.
     */
    private scrollToTop;
    /**
     * Handles header action clicks.
     */
    onHeaderClickHandler(token: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PageWrapperComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PageWrapperComponent, "val-page-wrapper", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, { "onHeaderClick": "onHeaderClick"; }, never, never, true, never>;
}
