/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
import { DrawerDirection } from './base-drawer-constants';
import { BaseDrawerFoundation } from './base-drawer-foundation';
export interface IBaseDrawerComponent extends IBaseComponent {
    open: boolean;
    direction: DrawerDirection;
}
declare global {
    interface HTMLElementEventMap {
        'forge-drawer-after-open': CustomEvent<void>;
        'forge-drawer-after-close': CustomEvent<void>;
    }
}
export declare abstract class BaseDrawerComponent<T extends BaseDrawerFoundation> extends BaseComponent implements IBaseDrawerComponent {
    static get observedAttributes(): string[];
    protected abstract _foundation: T;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** Toggles whether a `dismissible` or `modal` drawer is open or not. Has no effect on `permanent` drawers. */
    open: boolean;
    /** Controls the laytout direction of the drawer for positioning on the left vs. right side of the screen. */
    direction: DrawerDirection;
}
