import React$1, { RefObject, CSSProperties } from 'react'; import { ButtonIconProps } from '@interopio/components-react'; import { PopupProps, PopupActions } from 'reactjs-popup/dist/types'; interface Bounds { top: number; left: number; width: number; height: number; } interface Size { width?: number; height?: number; } type PopupTargetLocation = "top" | "bottom" | "left" | "right" | "none"; interface ButtonProps extends Omit, HTMLLIElement>, "title"> { title?: string; frameId?: string; buttonIconProps?: ButtonIconProps; } interface GroupHeaderButtonProps$1 extends ButtonProps { visible: boolean; } interface AddWorkspaceButtonProps extends ButtonProps { isAddWorkspacePopupActive?: boolean; } type CloseFrameButtonProps = ButtonProps; type MinimizeFrameButtonProps = ButtonProps; type MaximizeFrameButtonProps = ButtonProps; interface RestoreGroupButtonProps extends GroupHeaderButtonProps$1 { restore: () => void; } interface MaximizeGroupButtonProps extends GroupHeaderButtonProps$1 { maximize: () => void; } interface EjectButtonProps extends GroupHeaderButtonProps$1 { eject: () => void; } interface AddWindowButtonProps extends GroupHeaderButtonProps$1 { showPopup: (bounds: Bounds) => void; isAddWindowPopupActive?: boolean; } interface LogoProps extends React.DetailedHTMLProps, HTMLSpanElement> { frameId: string; } interface SaveWorkspacePopupProps extends React.DetailedHTMLProps, HTMLDivElement> { workspaceId: string; io?: any; resizePopup: (s: Size) => void; hidePopup: () => void; buildMode?: boolean; } interface AddApplicationPopupProps extends React.DetailedHTMLProps, HTMLDivElement> { workspaceId: string; io?: any; resizePopup: (s: Size) => void; hidePopup: () => void; boxId: string; frameId?: string; filterApps?: (app: any) => boolean; } interface AddWorkspacePopupProps extends React.DetailedHTMLProps, HTMLDivElement> { frameId: string; io?: any; filterLayouts?: (layouts: any) => boolean; resizePopup: (s: Size) => void; hidePopup: () => void; } interface WorkspaceIconButtonProps { externalIcon: string; } interface WorkspaceTabCloseButtonProps { close: () => void; } interface WorkspaceTitleProps { title: string; } interface AfterGroupTabsProps { addWindow: AddWindowButtonProps; } interface GroupHeaderButtonsProps { workspaceId: string; groupId: string; restore: RestoreGroupButtonProps; maximize: MaximizeGroupButtonProps; eject: EjectButtonProps; } type MoveAreaProps = React.DetailedHTMLProps, HTMLDivElement>; interface WorkspaceWindowTabProps { channels: { visible: boolean; color: string; showSelector: (bounds: Bounds) => void; }; showDelayedIndicator: boolean; isSelected: boolean; elementId: string; windowId: string; groupId: string; workspaceId: string; title: string; close: { visible: boolean; title?: string; close: () => void; }; } interface WorkspaceWindowTabTitleProps { title: string; } interface WorkspaceWindowTabCloseButtonProps { close: () => void; title?: string; } interface WorkspaceWindowChannelsLinkProps { context?: ChannelContext; color: string; showSelector: (bounds: Bounds) => void; } interface ChannelContext { channels: ChannelInfo[]; variant: string; } interface ChannelInfo { label: string; color: string; name: string; isSelected?: boolean; read?: boolean; write?: boolean; } declare const AddWorkspaceButton: React$1.FC; declare const CloseFrameButton: React$1.FC; declare const MaximizeFrameButton: React$1.FC; declare const MinimizeFrameButton: React$1.FC; declare const _default$3: (props: AddApplicationPopupProps) => React$1.JSX.Element; declare const _default$2: (props: AddWorkspacePopupProps) => React$1.JSX.Element; declare const _default$1: (props: SaveWorkspacePopupProps) => React$1.JSX.Element; interface WorkspaceLoadingAnimationProps { workspaceId: string; } interface WorkspaceContentsProps extends React.DetailedHTMLProps, HTMLDivElement> { workspaceId: string; frameId?: string; containerElement?: HTMLElement; } declare const WorkspaceContents: React$1.FC; declare const MoveArea: React$1.FC; declare function useWorkspacePopup(element: RefObject): (() => void)[]; declare function useWorkspaceWindowClicked(cb: () => void): () => void; interface HeaderComponentProps { frameId: string; [k: string]: any; } interface WorkspaceTabComponentProps { workspaceId: string; isSelected: boolean; isPinned: boolean; title: string; icon: string; showSaveButton: boolean; showCloseButton: boolean; layoutName: string; onCloseClick: () => void; onSaveClick: (bounds: Bounds) => void; io?: any; } interface AddWorkspaceComponentProps extends HeaderComponentProps { isAddWorkspacePopupActive?: boolean; } interface GroupHeaderButtonProps { visible: boolean; title?: string; } interface ChannelsGroupHeaderButtonProps extends Omit { color: string; showSelector: (bounds: Bounds) => void; } interface CloseWorkspaceWindowTabButtonProps extends GroupHeaderButtonProps { close: () => void; } interface AddWindowGroupHeaderButtonProps extends GroupHeaderButtonProps { showPopup: (bounds: Bounds) => void; } interface MaximizeGroupHeaderButtonProps extends GroupHeaderButtonProps { maximize: () => void; } interface RestoreGroupHeaderButtonProps extends GroupHeaderButtonProps { restore: () => void; } interface EjectGroupHeaderButtonProps extends GroupHeaderButtonProps { eject: () => void; } interface GroupHeaderComponentProps { groupId: string; workspaceId: string; } interface WorkspaceWindowTabComponentProps extends GroupHeaderComponentProps { showDelayedIndicator: boolean; isSelected: boolean; elementId: string; windowId: string; title: string; channels: ChannelsGroupHeaderButtonProps; close: CloseWorkspaceWindowTabButtonProps; } interface AfterTabsComponentProps extends GroupHeaderComponentProps { addWindow: AddWindowGroupHeaderButtonProps; isAddWindowPopupActive?: boolean; } interface GroupHeaderButtonsComponentProps extends GroupHeaderComponentProps { addWindow: AddWindowGroupHeaderButtonProps; maximize: MaximizeGroupHeaderButtonProps; restore: RestoreGroupHeaderButtonProps; eject: EjectGroupHeaderButtonProps; } interface AddWorkspacePopupComponentProps { frameId: string; resizePopup: (s: Size) => void; hidePopup: () => void; io?: any; } interface AddApplicationPopupComponentProps { workspaceId: string; boxId: string; resizePopup: (s: Size) => void; hidePopup: () => void; io?: any; } interface SaveWorkspacePopupComponentProps { workspaceId: string; resizePopup: (s: Size) => void; hidePopup: () => void; io?: any; } interface WorkspacePopupProps extends Omit { innerContentStyle?: CSSProperties; popupRef?: RefObject; } interface showAddApplicationPopupOptions { workspaceId: string; groupId: string; bounds: Bounds; } interface CreatePopupOptions { left?: number; top?: number; width?: number; height?: number; roundedCorners?: boolean; hasSizeAreas?: boolean; hasMoveAreas?: boolean; transparent?: boolean; copyStyles?: boolean; } interface ShowPopupOptions { targetBounds?: Bounds; size?: Size; targetLocation?: PopupTargetLocation; focus?: boolean; horizontalOffset?: number; verticalOffset?: number; } interface PopupWindow { ioConnectWindow: any; browserWindow: Window; } interface ExternalWindowPopupResult { getContainer: () => HTMLElement | null; createPopup: (options?: CreatePopupOptions) => Promise; showPopup: (options?: ShowPopupOptions) => Promise; resizePopup: (size: Size) => Promise; hidePopup: () => Promise; closePopup: () => Promise; isOpen: boolean; isVisible: boolean; popup: PopupWindow | null; } interface WorkspacesProps extends React.DetailedHTMLProps, HTMLDivElement> { components?: { header?: { LogoComponent?: React.ComponentType; WorkspaceTabComponent?: React.ComponentType; AddWorkspaceComponent?: React.ComponentType; SystemButtonsComponent?: React.ComponentType; }; WorkspaceContents?: React.ComponentType; groupHeader?: { BeforeTabsComponent?: React.ComponentType; WorkspaceWindowTabComponent?: React.ComponentType; AfterTabsComponent?: React.ComponentType; ButtonsComponent?: React.ComponentType; }; popups?: { SaveWorkspaceComponent?: React.ComponentType | string; AddApplicationComponent?: React.ComponentType | string; AddWorkspaceComponent?: React.ComponentType | string; }; loadingAnimation?: { Workspace?: React.ComponentType; }; settings?: { splitterSize?: number; }; }; io?: any; } declare function useExternalWindowPopup(): ExternalWindowPopupResult; declare const WorkspacePopup: React$1.FC; declare const WorkspacesElementCreationWrapper: React$1.FC; declare const WorkspaceTitle: React$1.FC; declare const WorkspaceIconButton: React$1.FC; declare const WorkspaceTabCloseButton: React$1.FC; declare const WorkspaceLoadingAnimation: React$1.FC; declare const _default: (props: WorkspaceTabComponentProps) => React$1.JSX.Element; declare const WorkspaceWindowTabChannelsLink: React$1.FC; declare const WorkspaceWindowTabTitle: React$1.FC; declare const WorkspaceWindowTabDelayedIndicator: React$1.FC; declare const WorkspaceWindowTabCloseButton: React$1.FC; declare const WorkspaceWindowTab: React$1.FC; declare const AddWindowButton: React$1.FC; declare const EjectButton: React$1.FC; declare const MaximizeGroupButton: React$1.FC; declare const RestoreGroupButton: React$1.FC; declare const GroupHeaderButtons: React$1.FC; declare const Logo: React$1.FC; declare const AfterGroupTabs: React$1.FC; /** * @deprecated Deprecated set the --webkit-app-region: drag css property instead. Available in io.CD 10.0 and above */ declare const notifyMoveAreaChanged: () => void; declare const getComponentBounds: () => Bounds; declare const getFrameId: () => string; declare const requestFocus: () => void; declare const showAddApplicationPopup: (options: showAddApplicationPopupOptions) => void; export { _default$3 as AddApplicationPopup, AddWindowButton, AddWorkspaceButton, _default$2 as AddWorkspacePopup, AfterGroupTabs, CloseFrameButton, EjectButton, GroupHeaderButtons, Logo, MaximizeFrameButton, MaximizeGroupButton, MinimizeFrameButton, MoveArea, RestoreGroupButton, _default$1 as SaveWorkspacePopup, WorkspaceContents, WorkspaceIconButton, WorkspaceLoadingAnimation, WorkspacePopup, _default as WorkspaceTab, WorkspaceTabCloseButton, WorkspaceTitle, WorkspaceWindowTabChannelsLink as WorkspaceWindowChannelsLink, WorkspaceWindowTab, WorkspaceWindowTabCloseButton, WorkspaceWindowTabDelayedIndicator, WorkspaceWindowTabTitle, WorkspacesElementCreationWrapper as default, getComponentBounds, getFrameId, notifyMoveAreaChanged, requestFocus, showAddApplicationPopup, useExternalWindowPopup, useWorkspacePopup, useWorkspaceWindowClicked }; export type { AddApplicationPopupComponentProps, AddApplicationPopupProps, AddWindowButtonProps, AddWorkspaceButtonProps, AddWorkspacePopupComponentProps, AddWorkspacePopupProps, AfterGroupTabsProps, AfterTabsComponentProps, Bounds, EjectButtonProps, ExternalWindowPopupResult, GroupHeaderButtonsProps, MaximizeFrameButtonProps, MaximizeGroupButtonProps, MinimizeFrameButtonProps, MoveAreaProps, SaveWorkspacePopupComponentProps, SaveWorkspacePopupProps, WorkspaceContentsProps, WorkspaceLoadingAnimationProps, WorkspaceTabComponentProps, WorkspaceWindowChannelsLinkProps, WorkspaceWindowTabCloseButtonProps, WorkspaceWindowTabProps, WorkspaceWindowTabTitleProps, WorkspacesProps };