/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import { Plugin } from '@nocobase/client-v2';
import type { Instruction } from './canvas/Instruction';
import type { Trigger } from './triggers';
import './models/triggerWorkflows';
export type InstructionGroup = {
    key: string;
    label: string;
};
/**
 * A workflow **system variable** (the `$system` scope). Registered by the
 * workflow plugin itself — fixed, framework-independent values (current time,
 * instance id, snowflake id), not contributed by any other plugin. Mirrors v1's
 * `registerSystemVariable` (`client/index.tsx`).
 */
export type SystemVariableOption = {
    /** Registry key + the path segment under `$system` (e.g. `now`). */
    key: string;
    /** Display label. Accepts a plain string or a `{{t("…")}}` template. */
    label: string;
    /** Optional tooltip shown next to the label. */
    tooltip?: string;
};
export declare class PluginWorkflowClientV2 extends Plugin {
    triggers: any;
    instructions: any;
    instructionGroups: any;
    systemVariables: any;
    /**
     * Register a `$system` scope variable. Mirrors v1's `registerSystemVariable`
     * but writes to *this* (v2) runtime's registry. The workflow plugin registers
     * the builtin ones (time / instance id / snowflake id) on load.
     */
    registerSystemVariable(option: SystemVariableOption): void;
    isWorkflowSync(workflow: any): any;
    /**
     * Register a node type's v2 instruction. Mirrors v1's `registerInstruction`
     * signature (accepts a class or an instance) but writes to *this* (v2)
     * runtime's registry — see ADR-0003 / doc §9.1 (runtime separation). A type
     * registered here appears in the v2 add-node menu and renders on the v2 canvas.
     */
    registerInstruction(type: string, instruction: Instruction | {
        new (): Instruction;
    }): void;
    getInstruction(type?: string): any;
    registerInstructionGroup(key: string, group: InstructionGroup): void;
    registerTrigger(type: string, trigger: Trigger | {
        new (): Trigger;
    }): void;
    getTriggerOptions(type?: string): any;
    load(): Promise<void>;
    private registerBuiltinSystemVariables;
    private registerBuiltinInstructions;
    private registerModelLoaders;
    private registerBuiltinTriggers;
    private registerSettingsPage;
    private registerCanvasRoute;
    private registerExecutionRoute;
}
export default PluginWorkflowClientV2;
