import { AnimationBuilder, AnimationPlayer, AnimationReferenceMetadata } from '@angular/animations';
import { ChangeDetectorRef } from '@angular/core';
export declare enum Direction {
    NONE = 0,
    NEXT = 1,
    PREV = 2
}
export declare const CarouselAnimationType: {
    none: "none";
    slide: "slide";
    fade: "fade";
};
export declare type CarouselAnimationType = (typeof CarouselAnimationType)[keyof typeof CarouselAnimationType];
export interface CarouselAnimationSettings {
    enterAnimation: AnimationReferenceMetadata;
    leaveAnimation: AnimationReferenceMetadata;
}
/** @hidden */
export interface IgxSlideComponentBase {
    direction: Direction;
    previous: boolean;
}
/** @hidden */
export declare abstract class IgxCarouselComponentBase {
    private builder;
    private cdr;
    /** @hidden */
    animationType: string;
    /** @hidden */
    protected currentItem: IgxSlideComponentBase;
    /** @hidden */
    protected previousItem: IgxSlideComponentBase;
    /** @hidden */
    protected enterAnimationPlayer?: AnimationPlayer;
    /** @hidden */
    protected leaveAnimationPlayer?: AnimationPlayer;
    /** @hidden */
    protected animationDuration: number;
    /** @hidden */
    protected animationPosition: number;
    /** @hidden */
    protected newDuration: number;
    constructor(builder: AnimationBuilder, cdr: ChangeDetectorRef);
    /** @hidden */
    protected triggerAnimations(): void;
    /** @hidden */
    protected animationStarted(animation: AnimationPlayer): boolean;
    /** @hidden */
    protected playAnimations(): void;
    private resetAnimations;
    private getAnimation;
    private playEnterAnimation;
    private playLeaveAnimation;
    protected abstract getPreviousElement(): HTMLElement;
    protected abstract getCurrentElement(): HTMLElement;
}
