import { EventEmitter } from "@angular/core";
/**
 * This interface represents the contract between the dialog component (the "shell" around that masks the background)
 * and the body of the dialog which can be almost any component. It exposes a way for us to pass data into and out of
 * the body from the hosting page with strong type information
 */
export interface DialogContent<T> {
    /** Unique identifier for the implementing class. */
    dialogId: string;
    /**
     * The data that is passed to the inner dialog component when it opens from the hosting page.
     * Will be called before any angular lifecycle hooks.
     */
    onOpen?: (openContext?: T) => void;
    /** An event emitter that will emit an event when the dialog action has completed successfully */
    onDialogSave: EventEmitter<T>;
    /** An event emitter that will emit an event when the dialog action has been canceled */
    onDialogCancel: EventEmitter<void>;
}
