import * as React from 'react';
import { ExportRasterOptions } from '../diagram/canvasApi';
/**
 * Base props for toolbar action components.
 *
 * @see {@link ToolbarAction}
 */
export interface ToolbarActionStyleProps {
    /**
     * Additional CSS class for the component.
     */
    className?: string;
    /**
     * Title for the action button or menu item.
     */
    title?: string;
    /**
     * Whether the action is disabled.
     */
    disabled?: boolean;
}
/**
 * Props for {@link ToolbarAction} component.
 *
 * @see {@link ToolbarAction}
 */
export interface ToolbarActionProps extends ToolbarActionStyleProps {
    /**
     * Handler to call when the action is selected
     * (button clicked or menu item selected).
     */
    onSelect?: () => void;
    /**
     * Action content.
     */
    children?: React.ReactNode;
}
/**
 * Base component to display an action on the {@link Toolbar} itself or
 * in the dropdown menu in a generic way.
 *
 * @category Components
 */
export declare function ToolbarAction(props: ToolbarActionProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarActionOpen} component.
 *
 * @see {@link ToolbarActionOpen}
 */
export interface ToolbarActionOpenProps extends ToolbarActionStyleProps {
    /**
     * Accepted [file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept)
     * for the file selection.
     */
    fileAccept?: string;
    /**
     * Handler for the selected file.
     */
    onSelect: (file: File) => void;
    /**
     * Action content.
     */
    children?: React.ReactNode;
}
/**
 * Toolbar action component to open a file selection dialog.
 *
 * @category Components
 */
export declare function ToolbarActionOpen(props: ToolbarActionOpenProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarActionSave} component.
 *
 * @see {@link ToolbarActionSave}
 */
export interface ToolbarActionSaveProps extends Omit<ToolbarActionStyleProps, 'disabled'> {
    /**
     * Enable mode for the action:
     *   - `layout` - the action is enabled when there are unsaved changes
     *     to the diagram layout (when a command history is non-empty);
     *   - `authoring` - the action is enabled when graph authoring state is non-empty.
     */
    mode: 'layout' | 'authoring';
    /**
     * Handler for the action.
     */
    onSelect: () => void;
    /**
     * Action content.
     */
    children?: React.ReactNode;
}
/**
 * Toolbar action component to save diagram layout state or apply authored changed.
 *
 * @category Components
 */
export declare function ToolbarActionSave(props: ToolbarActionSaveProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarActionClearAll} component.
 *
 * @see {@link ToolbarActionClearAll}
 */
export interface ToolbarActionClearAllProps extends ToolbarActionStyleProps {
}
/**
 * Toolbar action component to clear diagram content.
 *
 * Clearing the diagram adds a command to the command history.
 *
 * @category Components
 */
export declare function ToolbarActionClearAll(props: ToolbarActionClearAllProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarActionExport} component.
 *
 * @see {@link ToolbarActionExport}
 */
export interface ToolbarActionExportProps extends ToolbarActionStyleProps {
    /**
     * Export mode:
     *   - `exportRaster` - exports the diagram into a raster image file;
     *   - `exportSvg` - export the diagram into an SVG file;
     *   - `print` - prints the diagram.
     */
    kind: 'exportRaster' | 'exportSvg' | 'print';
    /**
     * Exported file name without extension.
     *
     * Only applicable when {@link kind} is `exportRaster` or `exportSvg`.
     *
     * @default "diagram"
     */
    fileName?: string;
    /**
     * Export options (e.g. background color) for raster images.
     *
     * Only applicable when {@link kind} is `exportRaster`.
     *
     * @default {backgroundColor: "white"}
     */
    rasterOptions?: ExportRasterOptions;
    /**
     * Action content.
     */
    children?: React.ReactNode;
}
/**
 * Toolbar action component to export the diagram into a file, or print it.
 *
 * @category Components
 */
export declare function ToolbarActionExport(props: ToolbarActionExportProps): import("react/jsx-runtime").JSX.Element | null;
/**
 * Props for {@link ToolbarActionUndo} component.
 *
 * @see {@link ToolbarActionUndo}
 */
export interface ToolbarActionUndoProps extends Omit<ToolbarActionStyleProps, 'disabled'> {
}
/**
 * Toolbar action component to undo a command from the command history.
 *
 * @category Components
 */
export declare function ToolbarActionUndo(props: ToolbarActionUndoProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarActionRedo} component.
 *
 * @see {@link ToolbarActionRedo}
 */
export interface ToolbarActionRedoProps extends Omit<ToolbarActionStyleProps, 'disabled'> {
}
/**
 * Toolbar action component to redo a command from the command history.
 *
 * @category Components
 */
export declare function ToolbarActionRedo(props: ToolbarActionRedoProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarActionLayout} component.
 *
 * @see {@link ToolbarActionLayout}
 */
export interface ToolbarActionLayoutProps extends Omit<ToolbarActionStyleProps, 'disabled'> {
}
/**
 * Toolbar action component to perform graph layout algorithm on the diagram content.
 *
 * Applying the layout adds a command to the command history.
 *
 * @category Components
 */
export declare function ToolbarActionLayout(props: ToolbarActionLayoutProps): import("react/jsx-runtime").JSX.Element;
/**
 * Props for {@link ToolbarLanguageSelector} component.
 *
 * @see {@link ToolbarLanguageSelector}
 */
export interface ToolbarLanguageSelectorProps extends Pick<ToolbarActionStyleProps, 'className' | 'title'> {
    /**
     * List of languages to select from.
     */
    languages: ReadonlyArray<WorkspaceLanguage>;
}
/**
 * Workspace data language variant to select.
 */
export interface WorkspaceLanguage {
    /**
     * Language code which is specified as lowercase [BCP47](https://www.rfc-editor.org/rfc/rfc5646)
     * string (examples: `en`, `en-gb`, etc).
     */
    readonly code: string;
    /**
     * Language display name.
     */
    readonly label: string;
}
/**
 * Toolbar component to select a data language for the workspace.
 *
 * @category Components
 */
export declare function ToolbarLanguageSelector(props: ToolbarLanguageSelectorProps): import("react/jsx-runtime").JSX.Element | null;
//# sourceMappingURL=toolbarAction.d.ts.map