import { GridOptions } from 'ag-grid-enterprise';
import { PivotLayoutModel, TableLayoutModel } from './LayoutManagerModel';
import { LMLogger } from './LMLogger';
type LMEmitterEventTypes = {
    gridLayoutChanged: (layout: TableLayoutModel | PivotLayoutModel) => void;
    columnDefsChanged: (colDefs: GridOptions['columnDefs']) => void;
};
export declare class LMEmitter extends LMLogger {
    protected destroyed: boolean;
    private suspended;
    constructor(options: {
        debugId: string;
    });
    /**
     * For each supported event, we have a Set that holds all the callbacks that should be executed
     * when the event is triggered.
     */
    private eventSets;
    on<E extends keyof LMEmitterEventTypes>(event: E, callback: LMEmitterEventTypes[E]): () => void;
    suspend(): void;
    resume(): void;
    emitSync<E extends keyof LMEmitterEventTypes>(event: E, ...args: Parameters<LMEmitterEventTypes[E]>): void;
    destroy(): void;
}
export {};
