import type { ElectronWindow } from "./create-lens-window.injectable";
import type { RequireExactlyOne } from "type-fest";
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
export interface FileSource {
    file: string;
}
export interface UrlSource {
    url: string;
}
export type ContentSource = RequireExactlyOne<FileSource & UrlSource>;
export interface ElectronWindowConfiguration {
    id: string;
    title: string;
    defaultHeight: number;
    defaultWidth: number;
    getContentSource: () => ContentSource;
    resizable: boolean;
    windowFrameUtilitiesAreShown: boolean;
    centered: boolean;
    titleBarStyle?: ElectronWindowTitleBarStyle;
    beforeOpen?: () => Promise<void>;
    onClose: () => void;
    onFocus?: () => void;
    onBlur?: () => void;
    onDomReady?: () => void;
}
export type CreateElectronWindow = (config: ElectronWindowConfiguration) => ElectronWindow;
declare const createElectronWindowInjectable: import("@ogre-tools/injectable").Injectable<CreateElectronWindow, unknown, void>;
export default createElectronWindowInjectable;
