import { ISlottable } from '../../../Behaviors/Slottable';
import { TabPanelAlignment } from '../../../Types/TabPanelAlignment';
import { TabStripPlacement } from '../../../Types/TabStripPlacement';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { ITabPanelElementProps } from './ITabPanelElementProps';
declare const TabPanelElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Tab Panel - A container that holds the content associated with a specific tab.
 *
 * @element mosaik-tab-panel
 *
 * @dependency {ButtonElement} mosaik-button - ButtonElement
 *
 * @example
 * ```html
 * <mosaik-tab-panel>
 *  <!-- content to be displayed -->
 * </mosaik-tab-panel>
 * ```
 *
 * @public
 */
export declare class TabPanelElement extends TabPanelElement_base implements ITabPanelElementProps, ISlottable {
    private _containerElement;
    private _hasScrollableContent;
    private _canScrollToStart;
    private _canScrollToEnd;
    private _alignment;
    private _placement;
    private _hasIndicator;
    private _enableGestures;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `alignment` property.
     *
     * @public
     * @attr
     */
    get alignment(): TabPanelAlignment;
    set alignment(value: TabPanelAlignment);
    /**
     * Gets or sets the `placement` property.
     *
     * @public
     * @attr
     */
    get placement(): TabStripPlacement;
    set placement(value: TabStripPlacement);
    /**
     * Gets or sets the `hasIndicator` property.
     *
     * @public
     * @attr
     */
    get hasIndicator(): boolean;
    set hasIndicator(value: boolean);
    /**
     * Gets or sets the `enableGestures` property.
     *
     * @public
     * @attr
     */
    get enableGestures(): boolean;
    set enableGestures(value: boolean);
    /**
     * Gets the `hasScrollableContent` property.
     *
     * @public
     * @readonly
     */
    get hasScrollableContent(): boolean;
    private set hasScrollableContent(value);
    /**
     * Gets the `canScrollToStart` property.
     *
     * @public
     * @readonly
     */
    get canScrollToStart(): boolean;
    private set canScrollToStart(value);
    /**
     * Gets or sets the `canScrollToEnd` property.
     *
     * @public
     * @readonly
     */
    get canScrollToEnd(): boolean;
    private set canScrollToEnd(value);
    render(): unknown;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @private
     * @template
     */
    scrollByTabOffset(direction: 'before' | 'after'): void;
    /**
     * @private
     * @template
     */
    onScroll(e: Event): void;
}
/**
 * @public
 */
export declare namespace TabPanelElement {
    type Props = ITabPanelElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-tab-panel': TabPanelElement;
    }
}
export {};
//# sourceMappingURL=TabPanelElement.d.ts.map