import { TemplateRef, EventEmitter, OnDestroy } from '@angular/core';
import { LyTheme2, LyOverlay, ThemeVariables, XPosition, YPosition, StyleTemplate, StyleCollection } from '@alyle/ui';
import { LySnackBarService } from './snack-bar.service';
import { LySnackBarRef } from './snack-bar-ref';
import * as i0 from "@angular/core";
export interface LySnackBarTheme {
    /** Styles for SnackBar Component */
    root?: StyleTemplate | StyleCollection;
}
export interface LySnackBarVariables {
    snackBar?: LySnackBarTheme;
}
/** Possible values for horizontalPosition on LySnackBarConfig. */
export type LySnackBarHorizontalPosition = 'center' | 'before' | 'after' | 'left' | 'right';
/** Possible values for verticalPosition on LySnackBarConfig. */
export type LySnackBarVerticalPosition = 'above' | 'below';
export declare const STYLES: (theme: ThemeVariables & LySnackBarVariables) => {
    $priority: number;
    root: (_className: string) => string;
};
/** Event that is emitted when a snack bar is dismissed. */
export interface LySnackBarDismiss {
    /** Whether the snack bar was dismissed using the action fn. */
    dismissedByAction: boolean;
}
export declare class LySnackBar implements OnDestroy {
    private _templateRef;
    private _theme;
    private _overlay;
    private _snackBarService;
    readonly classes: import("@alyle/ui").LyClasses<(theme: ThemeVariables & LySnackBarVariables) => {
        $priority: number;
        root: (_className: string) => string;
    }>;
    duration: number | 'Infinity';
    horizontalPosition: 'center' | XPosition | LySnackBarHorizontalPosition;
    verticalPosition: YPosition | LySnackBarVerticalPosition;
    afterDismissed: EventEmitter<LySnackBarDismiss>;
    constructor(_templateRef: TemplateRef<any>, _theme: LyTheme2, _overlay: LyOverlay, _snackBarService: LySnackBarService);
    ngOnDestroy(): void;
    /**
     * Open a LySnackBar template
     * @param snackBarData Data to be passed to the snack-bark.
     */
    open(snackBarData?: any): LySnackBarRef;
    /** Dismiss snackBar */
    dismiss(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LySnackBar, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LySnackBar, "ng-template[ly-snack-bar]", ["lySnackBar"], { "duration": { "alias": "duration"; "required": false; }; "horizontalPosition": { "alias": "horizontalPosition"; "required": false; }; "verticalPosition": { "alias": "verticalPosition"; "required": false; }; }, { "afterDismissed": "afterDismissed"; }, never, never, false, never>;
}
