import * as i0 from '@angular/core';
import { InjectionToken, OnInit } from '@angular/core';

declare const SNACKBAR_CONFIG: InjectionToken<unknown>;
declare const SNACKBAR_APP_REF: InjectionToken<unknown>;
type SnackbarType = 'info' | 'success' | 'warning' | 'error';
interface SnackbarConfig {
    type: SnackbarType;
    message: string;
    timeout?: number;
}
declare class Snackbar {
    private readonly appRef;
    private readonly injector;
    private generateElementId;
    success(message: string, timeout?: number): void;
    warning(message: string, timeout?: number): void;
    error(message: string, timeout?: number): void;
    info(message: string, timeout?: number): void;
    open(config: SnackbarConfig): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Snackbar, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<Snackbar>;
}

declare class SnackbarContent implements OnInit {
    private readonly alertContentRef;
    private readonly alertIconRef;
    private readonly snackbarRef;
    type: i0.InputSignal<SnackbarType>;
    message: i0.InputSignal<string>;
    timeout: i0.InputSignal<number>;
    timePast: i0.WritableSignal<number>;
    constructor();
    private addAlertClass;
    private addIconClass;
    ngOnInit(): void;
    dismiss(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarContent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SnackbarContent, "kl-snackbar-content", never, { "type": { "alias": "type"; "required": true; "isSignal": true; }; "message": { "alias": "message"; "required": true; "isSignal": true; }; "timeout": { "alias": "timeout"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

declare const SNACKBAR_REF_TOKEN: InjectionToken<unknown>;
declare class SnackbarRef {
    private readonly appRef;
    private readonly componentRef;
    dismiss(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SnackbarRef, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SnackbarRef>;
}

export { SNACKBAR_APP_REF, SNACKBAR_CONFIG, SNACKBAR_REF_TOKEN, Snackbar, SnackbarContent, SnackbarRef };
export type { SnackbarConfig, SnackbarType };
