import { AdaptableSystemIconName } from '../../types';
import { CustomRenderContext, AdaptableFrameworkComponent } from '../../agGrid/AdaptableFrameworkComponent';
/**
 * Config used to open a Custom Window
 */
export interface CustomWindowConfig {
    /**
     * Unique identifier for Custom Window
     */
    id: string;
    /**
     * Title of Custom Window
     */
    title?: string;
    /**
     * Icon to display in Custom Window header
     */
    icon?: AdaptableSystemIconName;
    /**
     * Render function to display content in Custom Window (if not using a framework component)
     */
    render?: (customRenderContext: CustomRenderContext) => string | null;
    /**
     * React, Angular or Vue Framework component to use for Custom Window content
     */
    frameworkComponent?: AdaptableFrameworkComponent;
    /**
     * Callback function invoked when framework component is destroyed
     */
    onFrameworkComponentDestroyed?: () => void;
    /**
     * Size of window in pixels (provided as width, height)
     */
    size?: WindowSize;
    /**
     * Position of window in pixels (provided as x, y)
     */
    position?: WindowPosition;
}
/**
 * Defines size of a Custom Window
 */
export interface WindowSize {
    width: number;
    height: number;
}
/**
 * Defines position of a Custom Window
 */
export interface WindowPosition {
    x: number;
    y: number;
}
