import * as React from 'react';
import { Events, EventTrigger } from '../coreUtils/events';
import { CanvasProps } from '../widgets/canvas';
import { ConnectionsMenuProps, ConnectionsMenuCommands } from '../widgets/connectionsMenu';
import { DropOnCanvasProps } from '../widgets/dropOnCanvas';
import { HaloProps } from '../widgets/halo';
import { HaloLinkProps } from '../widgets/haloLink';
import type { InstancesSearchCommands } from '../widgets/instancesSearch';
import { NavigatorProps } from '../widgets/navigator';
import { SelectionProps } from '../widgets/selection';
import { ToolbarProps } from '../widgets/toolbar';
import { WorkspaceLanguage } from '../widgets/toolbarAction';
import { UnifiedSearchProps, UnifiedSearchCommands } from '../widgets/unifiedSearch';
import { VisualAuthoringProps } from '../widgets/visualAuthoring';
import { ZoomControlProps } from '../widgets/zoomControl';
export interface BaseDefaultWorkspaceProps {
    /**
     * Sets a color scheme for the UI components.
     *
     * If set to `auto`, the component will track the following places in order:
     *  - `<html data-theme="...">` attribute in case it is set to `dark`;
     *  - `(prefers-color-scheme: dark)` media query matches;
     *  - fallback to the default `light` color scheme otherwise.
     *
     * @default "auto"
     */
    colorScheme?: 'auto' | 'light' | 'dark';
    /**
     * Props for the {@link Canvas} component.
     */
    canvas?: CanvasProps;
    /**
     * Additional widgets to pass as children to the {@link Canvas} component.
     */
    canvasWidgets?: ReadonlyArray<React.ReactElement>;
    /**
     * Props for the {@link ConnectionMenu} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    connectionsMenu?: Omit<ConnectionsMenuProps, 'commands'> | null;
    /**
     * Props for the {@link DropOnCanvas} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    dropOnCanvas?: DropOnCanvasProps | null;
    /**
     * Props for the {@link Halo} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    halo?: HaloProps | null;
    /**
     * Props for the {@link HaloLink} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    haloLink?: HaloLinkProps | null;
    /**
     * Props for the {@link Selection} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    selection?: SelectionProps | null;
    /**
     * Props for the {@link Navigator} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    navigator?: Partial<NavigatorProps> | null;
    /**
     * Props for the {@link VisualAuthoring} context component.
     */
    visualAuthoring?: Omit<VisualAuthoringProps, 'commands' | 'children'>;
    /**
     * Props for the {@link ZoomControl} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    zoomControl?: Partial<ZoomControlProps> | null;
    /**
     * Event bus to connect {@link UnifiedSearch} to other components.
     *
     * If not specified, an internal instance will be automatically created.
     */
    searchCommands?: Events<UnifiedSearchCommands> & EventTrigger<UnifiedSearchCommands>;
    /**
     * Event bus to connect {@link ConnectionMenu} to other components.
     *
     * If not specified, an internal instance will be automatically created.
     */
    connectionsMenuCommands?: Events<ConnectionsMenuCommands> & EventTrigger<ConnectionsMenuCommands>;
    /**
     * Event bus to connect {@link InstancesSearch} to other components.
     *
     * If not specified, an internal instance will be automatically created.
     */
    instancesSearchCommands?: Events<InstancesSearchCommands> & EventTrigger<InstancesSearchCommands>;
}
/**
 * Props for {@link DefaultWorkspace} component.
 *
 * @see {@link DefaultWorkspace}
 */
export interface DefaultWorkspaceProps extends BaseDefaultWorkspaceProps {
    /**
     * Main menu content, in a form of {@link ToolbarAction} elements.
     *
     * If specified as `null`, the menu toggle button will be hidden.
     *
     * **Default**:
     * ```jsx
     * <>
     *     <ToolbarActionClearAll />
     *     <ToolbarActionExport kind='exportRaster' />
     *     <ToolbarActionExport kind='exportSvg' />
     *     <ToolbarActionExport kind='print' />
     * </>
     * ```
     * @see {@link ToolbarProps.menu}
     */
    menu?: React.ReactNode | null;
    /**
     * Props for the {@link UnifiedSearch} canvas widget.
     *
     * If specified as `null`, the component will not be rendered.
     */
    search?: UnifiedSearchProps | null;
    /**
     * Content for the secondary (actions) toolbar, in a form of
     * {@link ToolbarAction} elements.
     *
     * If specified as `null`, the secondary toolbar will be hidden.
     *
     * * **Default**:
     * ```jsx
     * <>
     *     <ToolbarActionUndo />
     *     <ToolbarActionRedo />
     *     <ToolbarActionLayout />
     *     <ToolbarLanguageSelector languages={props.languages} />
     * </>
     * ```
     */
    actions?: React.ReactNode | null;
    /**
     * Additional props for the primary (main) toolbar.
     */
    mainToolbar?: Pick<ToolbarProps, 'dock' | 'dockOffsetX' | 'dockOffsetY'>;
    /**
     * Additional props for the secondary (actions) toolbar.
     */
    actionsToolbar?: Pick<ToolbarProps, 'dock' | 'dockOffsetX' | 'dockOffsetY'>;
    /**
     * Set of languages for the diagram data language selector.
     *
     * If not specified or empty, the selector will be hidden.
     */
    languages?: ReadonlyArray<WorkspaceLanguage>;
}
/**
 * Component with default ready-to-use workspace with a canvas and
 * all components and widgets pre-configured.
 *
 * @category Components
 */
export declare function DefaultWorkspace(props: DefaultWorkspaceProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=defaultWorkspace.d.ts.map