/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
import { ISplitViewPanelOpenEvent, ISplitViewPanelWillResizeEvent, SplitViewPanelResizable } from './split-view-panel-constants';
import { ISplitViewUpdateConfig } from '../split-view/split-view-constants';
import { ISplitViewBase } from '../core/split-view-base';
export interface ISplitViewPanelComponent extends Partial<ISplitViewBase>, IBaseComponent {
    resizable: SplitViewPanelResizable;
    size: number | string;
    min: number | string;
    max: number | string | undefined;
    accessibleLabel: string;
    open: boolean;
    getContentSize(): number;
    getCollapsibleSize(): number;
    setContentSize(size: number): void;
    update(config: ISplitViewUpdateConfig): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-split-view-panel': ISplitViewPanelComponent;
    }
    interface HTMLElementEventMap {
        'forge-split-view-panel-will-resize': CustomEvent<ISplitViewPanelWillResizeEvent>;
        'forge-split-view-panel-resize-start': CustomEvent<null>;
        'forge-split-view-panel-resize-end': CustomEvent<null>;
        'forge-split-view-panel-resize': CustomEvent<number>;
        'forge-split-view-panel-will-open': CustomEvent<ISplitViewPanelOpenEvent>;
        'forge-split-view-panel-will-close': CustomEvent<ISplitViewPanelOpenEvent>;
        'forge-split-view-panel-did-open': CustomEvent<ISplitViewPanelOpenEvent>;
        'forge-split-view-panel-did-close': CustomEvent<ISplitViewPanelOpenEvent>;
    }
}
/**
 * @tag forge-split-view-panel
 */
export declare class SplitViewPanelComponent extends BaseComponent implements ISplitViewPanelComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /**
     * Controls which side of the panel the resize handle appears on.
     */
    resizable: SplitViewPanelResizable;
    /**
     * The initial size along the axis of orientation.
     */
    size: number | string;
    /**
     * The smallest size the panel can take along its axis of orientation.
     */
    min: number | string;
    /**
     * The largest size the panel can take along its axis of orientation.
     */
    max: number | string | undefined;
    /**
     * The ARIA label given to the resize handle.
     */
    accessibleLabel: string;
    /**
     * Controls the open state of the panel.
     */
    open: boolean;
    /**
     * Whether resize interactions are disabled or enabled.
     */
    disabled?: boolean;
    /**
     * Whether the panel can be closed via keyboard interaction.
     */
    allowClose?: boolean;
    /**
     * Whether the panel automatically closes when it reaches a size of 0.
     */
    autoClose?: boolean;
    /**
     * The size at which the panel auto closes.
     */
    autoCloseThreshold?: number;
    /**
     * Gets the size of content along the axis of orientation.
     * @returns The size of content in pixels.
     */
    getContentSize(): number;
    /**
     * Gets the amount that the content can shrink along the axis of orientation before reaching its
     * min size.
     * @returns The amount that content can shrink in pixels.
     */
    getCollapsibleSize(): number;
    /**
     * Sets the size of content along the axis of orientation.
     * @param size The new size of content in pixels.
     */
    setContentSize(size: number): void;
    /**
     * Updates the provided characteristics.
     * @param config An update configuration.
     */
    update(config: ISplitViewUpdateConfig): void;
}
