import { Subject, Observable } from 'rxjs';
import { ElementRef, OnDestroy, OnInit, Signal } from '@angular/core';
import { DbxMapboxMapStore } from './mapbox.store';
import { type Maybe } from '@dereekb/util';
import { DbxThemeColor, ResizedEvent } from '@dereekb/dbx-web';
import { MatDrawerContainer } from '@angular/material/sidenav';
import * as i0 from "@angular/core";
export type DbxMapboxLayoutSide = 'left' | 'right';
export type DbxMapboxLayoutMode = 'side' | 'push';
/**
 * Responsive component meant to split a left and right column.
 *
 * The left column is smaller than the right column, which contains the primary content.
 *
 * Requires a TwoColumnsContextStore to be provided.
 */
export declare class DbxMapboxLayoutComponent implements OnInit, OnDestroy {
    readonly dbxMapboxMapStore: DbxMapboxMapStore;
    private readonly _viewResized;
    private readonly _refreshContentMargins;
    readonly drawerOpenedChange: import("@angular/core").OutputEmitterRef<boolean>;
    readonly drawerContainer: Signal<MatDrawerContainer>;
    readonly drawerContainerElement: Signal<ElementRef<HTMLElement>>;
    readonly drawerContent: Signal<ElementRef<HTMLElement>>;
    readonly side: import("@angular/core").InputSignalWithTransform<DbxMapboxLayoutSide, Maybe<DbxMapboxLayoutSide>>;
    readonly mode: import("@angular/core").InputSignalWithTransform<DbxMapboxLayoutMode, Maybe<DbxMapboxLayoutMode>>;
    /**
     * Forces the drawer to assume the drawer has content if true, or assume it has no content if false.
     */
    readonly forceHasDrawerContent: import("@angular/core").InputSignal<Maybe<boolean>>;
    readonly drawerButtonColor: import("@angular/core").InputSignalWithTransform<DbxThemeColor, Maybe<DbxThemeColor>>;
    readonly openDrawer: import("@angular/core").InputSignal<Maybe<boolean>>;
    readonly isDrawerOpenSignal: import("@angular/core").WritableSignal<Maybe<boolean>>;
    protected readonly _openDrawerEffect: import("@angular/core").EffectRef;
    readonly storeHasDrawerContent: Signal<boolean | undefined>;
    readonly drawerHasContentSignal: Signal<boolean | undefined>;
    readonly refreshContentMargins$: Subject<void>;
    readonly isOpenAndHasContentSignal: Signal<Maybe<boolean>>;
    readonly viewResized$: Observable<ResizedEvent>;
    readonly side$: Observable<DbxMapboxLayoutSide>;
    readonly mode$: Observable<DbxMapboxLayoutMode>;
    readonly drawerHasContent$: Observable<boolean | undefined>;
    readonly isOpenAndHasContent$: Observable<Maybe<boolean>>;
    readonly positionSignal: Signal<'start' | 'end'>;
    readonly drawerClassesSignal: Signal<string>;
    readonly buttonIconSignal: Signal<string>;
    private readonly _reszieSyncSub;
    private readonly _toggleSyncSub;
    ngOnInit(): void;
    ngOnDestroy(): void;
    viewResized(event: ResizedEvent): void;
    drawerOpened(opened: boolean): void;
    toggleDrawer(open?: Maybe<boolean>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxMapboxLayoutComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DbxMapboxLayoutComponent, "dbx-mapbox-layout", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "forceHasDrawerContent": { "alias": "forceHasDrawerContent"; "required": false; "isSignal": true; }; "drawerButtonColor": { "alias": "drawerButtonColor"; "required": false; "isSignal": true; }; "openDrawer": { "alias": "openDrawer"; "required": false; "isSignal": true; }; }, { "drawerOpenedChange": "drawerOpenedChange"; }, never, ["[drawer]", "*"], true, never>;
}
