import { Overlay } from '@angular/cdk/overlay';
import { Type } from '@angular/core';
import { NzMessageConfig } from './nz-message-config';
import { NzMessageContainerComponent } from './nz-message-container.component';
import { NzMessageData, NzMessageDataFilled, NzMessageDataOptions } from './nz-message.definitions';
export declare class NzMessageBaseService<ContainerClass extends NzMessageContainerComponent, MessageData, MessageConfig extends NzMessageConfig> {
    private _idPrefix;
    protected _container: ContainerClass;
    constructor(overlay: Overlay, containerClass: Type<ContainerClass>, _idPrefix?: string);
    remove(messageId?: string): void;
    createMessage(message: MessageData, options?: NzMessageDataOptions): NzMessageDataFilled;
    config(config: MessageConfig): void;
    protected _generateMessageId(): string;
}
export declare class NzMessageService extends NzMessageBaseService<NzMessageContainerComponent, NzMessageData, NzMessageConfig> {
    constructor(overlay: Overlay);
    success(content: string, options?: NzMessageDataOptions): NzMessageDataFilled;
    error(content: string, options?: NzMessageDataOptions): NzMessageDataFilled;
    info(content: string, options?: NzMessageDataOptions): NzMessageDataFilled;
    warning(content: string, options?: NzMessageDataOptions): NzMessageDataFilled;
    loading(content: string, options?: NzMessageDataOptions): NzMessageDataFilled;
    create(type: 'success' | 'info' | 'warning' | 'error' | 'loading' | string, content: string, options?: NzMessageDataOptions): NzMessageDataFilled;
}
