import { SidebarConfig } from './sidebar-programmatic.interfaces';
import * as i0 from "@angular/core";
export type SidebarState = 'default' | 'navigation';
/**
 * @slots
 * - **header**: Content displayed in the sidebar header
 * - **content**: Main content area of the sidebar
 * - **footer**: Optional footer content (sidebar will hide footer if no content provided)
 *
 * @states
 * - **default**: Shows custom header content
 * - **navigation**: Shows back button with title in header
 */
export declare class SidebarProgrammaticComponent {
    visible: import("@angular/core").WritableSignal<boolean>;
    state: import("@angular/core").WritableSignal<SidebarState>;
    title: import("@angular/core").WritableSignal<string>;
    hasSlotHeader: import("@angular/core").WritableSignal<boolean>;
    savedHeaderContent: import("@angular/core").WritableSignal<HTMLElement[]>;
    setVisible(visible: boolean): void;
    updateTitle(title: string): void;
    setConfig(config: SidebarConfig): void;
    onBackdropClick(): void;
    onEscapeKey(): void;
    onBackNavigation(): void;
    onCloseButtonClick(): void;
    onArrowKeyNavigation(direction: 'up' | 'down'): void;
    restoreHeaderFooterContent(): void;
    private removeDuplicateContent;
    private saveHeaderContent;
    private removeSlotHeader;
    static ɵfac: i0.ɵɵFactoryDeclaration<SidebarProgrammaticComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SidebarProgrammaticComponent, "lib-sidebar-programmatic", never, {}, {}, never, ["[slot=header]", "*", "[slot=footer]"], true, never>;
}
