import { CustomElement } from '../../Abstracts/CustomElement';
import { IEpgElementProps } from './IEpgElementProps';
import { EpgChannelElement } from './EpgChannelElement';
import { EpgProgramElement } from './EpgProgramElement';
import { IItemsAware } from '../../Interfaces/IItemsAware';
declare const EpgElement_base: import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<typeof CustomElement, import("../../../Behaviors/Disableable").IDisableableProps>, import("../../../Behaviors/Variantable").IVariantableProps>, import("../../../Behaviors/Appearanceable").IAppearanceableProps>, import("../../../Behaviors/Localeable").ILocaleableProps>, import("../../../Behaviors/Boundable").IBoundableProps>, import("../../../Behaviors/Filterable").IFilterableProps>;
/**
 * EPG - An Electronic Program Guide component for displaying TV schedules in a timeline grid.
 *
 * Renders a scrollable grid of channels and their time-slotted programs. Supports zooming,
 * a now-line indicator, a minimap overview, and timeline formatting.
 *
 * @name EpgElement
 * @element mosaik-epg
 * @category Selectors
 *
 * @slot  - The default slot.
 * @slot channels - `mosaik-epg-channel` elements for each broadcast channel row
 * @slot toolbar - The toolbar slot.
 *
 * @csspart channels - The channels part.
 * @csspart content - The content part.
 * @csspart corner - The corner part.
 * @csspart filter - The filter part.
 * @csspart minimap - The minimap part.
 * @csspart root - The root part.
 * @csspart scroll - The scroll part.
 * @csspart timeline - The timeline part.
 * @csspart toolbar - The toolbar part.
 * @csspart zoomOut - The zoomOut part.
 *
 * @cssprop {String} --epg-background-color - The background color CSS custom property.
 * @cssprop {String} --epg-border-color - The border color CSS custom property.
 * @cssprop {String} --epg-border-radius - The border radius CSS custom property.
 * @cssprop {String} --epg-border-style - The border style CSS custom property.
 * @cssprop {String} --epg-border-width - The border width CSS custom property.
 * @cssprop {String} --epg-font-family - The font family CSS custom property.
 * @cssprop {String} --epg-font-letter-spacing - The font letter spacing CSS custom property.
 * @cssprop {String} --epg-font-line-height - The font line height CSS custom property.
 * @cssprop {String} --epg-font-size - The font size CSS custom property.
 * @cssprop {String} --epg-font-text-decoration - The font text decoration CSS custom property.
 * @cssprop {String} --epg-font-text-transform - The font text transform CSS custom property.
 * @cssprop {String} --epg-font-weight - The font weight CSS custom property.
 * @cssprop {String} --epg-foreground-color - The foreground color CSS custom property.
 * @cssprop {String} --epg-gap - The gap CSS custom property.
 * @cssprop {String} --epg-padding-bottom - The padding bottom CSS custom property.
 * @cssprop {String} --epg-padding-left - The padding left CSS custom property.
 * @cssprop {String} --epg-padding-right - The padding right CSS custom property.
 * @cssprop {String} --epg-padding-top - The padding top CSS custom property.
 * @cssprop {String} --epg-shadow - The shadow CSS custom property.
 * @cssprop {String} --epg-shadow-blur - The shadow blur CSS custom property.
 * @cssprop {String} --epg-shadow-color - The shadow color CSS custom property.
 * @cssprop {String} --epg-shadow-offset-x - The shadow offset x CSS custom property.
 * @cssprop {String} --epg-shadow-offset-y - The shadow offset y CSS custom property.
 * @cssprop {String} --epg-shadow-spread - The shadow spread CSS custom property.
 * @cssprop {String} --epg-transition-duration - The transition duration CSS custom property.
 * @cssprop {String} --epg-transition-mode - The transition mode CSS custom property.
 * @cssprop {String} --epg-transition-property - The transition property CSS custom property.
 * @cssprop {String} --epg-translate - The translate CSS custom property.
 *
 * @dependency mosaik-button - The Button element.
 * @dependency mosaik-button-group - The Button Group element.
 * @dependency mosaik-datebox - The Datebox element.
 * @dependency mosaik-divider - The Divider element.
 * @dependency mosaik-epg-minimap - The Epg Minimap element.
 * @dependency mosaik-epg-timeline - The Epg Timeline element.
 * @dependency mosaik-icon - The Icon element.
 * @dependency mosaik-textbox - The Textbox element.
 * @dependency mosaik-toolbar - The Toolbar element.
 *
 * @example
 * ```html
 * <mosaik-epg zoom="30" show-now-line timeline-format="HH:mm">
 *   <mosaik-epg-channel value="bbc">BBC One</mosaik-epg-channel>
 *   <mosaik-epg-channel value="cnn">CNN</mosaik-epg-channel>
 * </mosaik-epg>
 * ```
 *
 * @public
 */
export declare class EpgElement extends EpgElement_base implements IEpgElementProps, IItemsAware<EpgChannelElement | EpgProgramElement> {
    private static readonly ZOOM_FACTORS;
    private _timelineElement;
    private _timer;
    private _zoom;
    private _visibleStart;
    private _visibleEnd;
    private _isNow;
    private _showNowLine;
    private _showMinimap;
    private _timelineFormat;
    /**
     * @public
     */
    constructor();
    _dragStartX: number;
    _scrollStartX: number;
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `zoom` property.
     *
     * @public
     * @attr
     */
    get zoom(): number;
    set zoom(value: number);
    /**
     * Gets or sets the `visibleStart` property.
     *
     * @public
     * @readonly
     */
    get visibleStart(): number;
    private set visibleStart(value);
    /**
     * Gets or sets the `visibleEnd` property.
     *
     * @public
     * @readonly
     *
     */
    get visibleEnd(): number;
    private set visibleEnd(value);
    /**
     * Gets or sets the `isNow` property.
     *
     * @public
     * @readonly
     */
    get isNow(): boolean;
    private set isNow(value);
    /**
     * Gets or sets the `showNowLine` property.
     *
     * @public
     * @attr
     */
    get showNowLine(): boolean;
    set showNowLine(value: boolean);
    /**
     * Gets or sets the `showMinimap` property.
     *
     * @public
     * @attr
     */
    get showMinimap(): boolean;
    set showMinimap(value: boolean);
    /**
     * Gets or sets the `timelineFormat` property.
     *
     * @public
     * @attr
     */
    get timelineFormat(): string;
    set timelineFormat(value: string);
    /**
     * Gets or sets the `totalWidth` property.
     *
     * @public
     * @readonly
     */
    get totalWidth(): number;
    /**
     * Returns the `items` property.
     *
     * @public
     * @readonly
     */
    get items(): Array<EpgChannelElement | EpgProgramElement>;
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
     * @public
     */
    zoomIn(): void;
    /**
     * @public
     */
    zoomOut(): void;
    /**
     * @public
     */
    nextDate(): void;
    /**
     * @public
     */
    previousDate(): void;
    updateNowButtonVisibility(): void;
    scrollToNow(smooth?: boolean): void;
    onMinimapJump(e: CustomEvent<number>): void;
    dragStart(e: MouseEvent): void;
    touchStart(e: TouchEvent): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     */
    protected onFilterPropertyChanged(_?: string, next?: string): void;
}
/**
 * @public
 */
export declare namespace EpgElement {
    type Props = IEpgElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-epg': EpgElement;
    }
}
export {};
//# sourceMappingURL=EpgElement.d.ts.map