import { AnimationEvent } from '@angular/animations';
import { ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
import { ChangeDetectorRef, OnInit, AfterViewInit } from '@angular/core';
import { ThemePalette } from '@angular/material/core';
import { Subject } from 'rxjs';
import { ExtractTimeTypeFromSelection, MatTimeSelectionModel } from './time-selection-model';
import { MatTimepickerBase, TimepickerMode } from './timepicker-base';
import { MatTimepickerIntl } from './timepicker-intl';
import { MatClockDials } from './clock-dials';
import { MatTimeInputs } from './time-inputs';
import { TimepickerOrientation } from './orientation';
import * as i0 from "@angular/core";
export declare class MatTimepickerContent<S, T = ExtractTimeTypeFromSelection<S>> implements OnInit, AfterViewInit {
    private _globalModel;
    private _changeDetectorRef;
    /** Reference to the internal clock dials component. */
    _dials: MatClockDials<T> | undefined;
    /** Reference to the internal time inputs component. */
    _inputs: MatTimeInputs<T> | undefined;
    /** Reference to the timepicker that created the overlay. */
    timepicker: MatTimepickerBase<any, S, T>;
    /** Display mode. */
    mode: TimepickerMode;
    /** Current state of the animation. */
    _animationState: 'enter-dropdown' | 'enter-dialog' | 'void';
    /** Whether the clock uses 12 hour format. */
    isMeridiem: boolean;
    /** Whether should toggle face button be shown. */
    showToggleModeButton: boolean;
    /** Step for minutes. */
    minuteInterval: number;
    /** Orientation for dial mode. */
    orientation: TimepickerOrientation;
    /** Portal with projected action buttons. */
    _actionsPortal: TemplatePortal | ComponentPortal<any> | null;
    /** Id of the label for the `role="dialog"` element. */
    _dialogLabelId: string | null;
    /** Text for the close button. */
    _closeButtonText: string;
    /** Whether the close button currently has focus. */
    _closeButtonFocused: boolean;
    /** Whether there is an in-progress animation. */
    _isAnimating: boolean;
    /**
     * Theme color of the internal timepicker. This API is supported in M2 themes
     * only, it has no effect in M3 themes.
     */
    color: ThemePalette;
    /** Emits when an animation has finished. */
    readonly _animationDone: Subject<void>;
    private _model;
    private _subscriptions;
    constructor(intl: MatTimepickerIntl, _globalModel: MatTimeSelectionModel<S, T>, _changeDetectorRef: ChangeDetectorRef);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /** Changes animation state while closing timepicker content. */
    _startExitAnimation(): void;
    _handleAnimationEvent(event: AnimationEvent): void;
    onToggleMode(mode: TimepickerMode): void;
    _getSelected(): T | null;
    /** Applies the current pending selection to the global model. */
    _applyPendingSelection(): void;
    /**
     * Assigns a new portal containing the timepicker actions.
     * @param portal Portal with the actions to be assigned.
     * @param forceRerender Whether a re-render of the portal should be triggered. This isn't
     * necessary if the portal is assigned during initialization, but it may be required if it's
     * added at a later point.
     */
    _assignActions(portal: TemplatePortal<any> | ComponentPortal<any> | null, forceRerender: boolean): void;
    _handleUserSelection(event: T): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MatTimepickerContent<any, any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MatTimepickerContent<any, any>, "mat-timepicker-content", ["matTimepickerContent"], {}, {}, never, never, true, never>;
}
