import { GsbEntityDef } from "./gsb-entity-def.model";
import { GsbFile } from "./gsb-file.model";
import { Operation } from "./gsb-function.model";
import { GsbUser } from "./gsb-user.model";
export declare enum ActivityType {
    System = 1,
    User = 2,
    Timer = 4,
    Start = 8,
    End = 16,
    MultiInnerWorkflow = 32,
    AwaitParallel = 64
}
export declare enum TransitionType {
    Standard = 1,
    Parallel = 2,
    Conditional = 4
}
export declare enum TaskStatus {
    OnHold = 1,
    Started = 2,
    Completed = 4,
    Cancelled = 8,
    ReAssigned = 16,
    Error = 32
}
export declare enum ProcessAction {
    Continue = 1,
    BreakOperation = 2,
    BreakFunction = 4,
    BreakActivity = 8,
    BreakWorkflow = 16,
    ReRunOperation = 32,
    ReRunFunction = 64,
    ReRunActivity = 128,
    RestartWorkflow = 256,
    CancelWorkflow = 512
}
export declare class GsbWorkflowFunction {
    _entDefName?: string;
    id?: string;
    name?: string;
    title?: string;
    functionType?: number;
    operationType?: number;
    parametersStr?: string;
    code?: string;
    constructor(obj?: Partial<GsbWorkflowFunction>);
}
export declare class GsbActivity {
    _entDefName?: string;
    id?: string;
    name?: string;
    title?: string;
    activityType?: ActivityType;
    refId?: string;
    form_id?: string;
    role_id?: string;
    position_id?: string;
    pauseDuration?: number;
    starterUser?: boolean;
    isManagerApprove?: boolean;
    settingsStr?: string;
    functions?: GsbWorkflowFunction[];
    afterFunctions?: GsbWorkflowFunction[];
    prevFunctions?: GsbWorkflowFunction[];
    workflow_id?: string;
    position?: {
        x: number;
        y: number;
    };
    constructor(obj?: Partial<GsbActivity>);
}
export declare class GsbTransition {
    _entDefName?: string;
    id?: string;
    name?: string;
    title?: string;
    from_id?: string;
    to_id?: string;
    type?: TransitionType;
    route?: string;
    propName?: string;
    paramName?: string;
    value?: string;
    condition?: number;
    refId?: string;
    workflow_id?: string;
    constructor(obj?: Partial<GsbTransition>);
}
export declare class GsbWorkflowInstance {
    _entDefName?: string;
    id?: string;
    name?: string;
    title?: string;
    status?: TaskStatus;
    workflow_id?: string;
    activity_id?: string;
    starter_id?: string;
    entity_id?: string;
    startDate?: Date;
    createDate?: Date;
    lastUpdateDate?: Date;
    result?: string;
    responseStr?: string;
    action?: ProcessAction;
    constructor(obj?: Partial<GsbWorkflowInstance>);
}
export declare class GsbWorkflowLog {
    _entDefName?: string;
    id?: string;
    instance_id?: string;
    activity_id?: string;
    function_id?: string;
    operation?: string;
    details?: string;
    result?: string;
    processDate?: Date;
    createDate?: Date;
    constructor(obj?: Partial<GsbWorkflowLog>);
}
export declare class GsbWfInstanceHistory {
    _entDefName?: string;
    result?: string;
    id?: string;
    createDate?: Date;
    note?: string;
    lastUpdateDate?: Date;
    lastUpdatedBy?: GsbUser;
    wfInstance?: GsbWorkflowInstance;
    operateUser_id?: string;
    completeDate?: Date;
    mainInstance?: GsbWorkflowInstance;
    wfInstance_id?: string;
    lastUpdatedBy_id?: string;
    title?: string;
    createdBy_id?: string;
    createdBy?: GsbUser;
    mainInstance_id?: string;
    attachments?: GsbFile[];
    operateUser?: GsbUser;
    constructor(obj?: Partial<GsbWfInstanceHistory>);
}
export declare class GsbWorkflow {
    _entDefName?: string;
    id?: string;
    name?: string;
    title?: string;
    design?: string;
    enableLog?: boolean;
    enableUseExisting?: boolean;
    module_id?: string;
    activities?: GsbActivity[];
    transitions?: GsbTransition[];
    instances?: GsbWorkflowInstance[];
    triggers?: GsbWorkflowTrigger[];
    createDate?: Date;
    lastUpdateDate?: Date;
    createdBy_id?: string;
    lastUpdatedBy_id?: string;
    constructor(obj?: Partial<GsbWorkflow>);
}
export declare class GsbWorkflowTrigger {
    _entDefName?: string;
    workflow_id?: string;
    operation?: Operation;
    title?: string;
    createdBy?: GsbUser;
    definition_id?: string;
    name?: string;
    cronExpression?: string;
    createdBy_id?: string;
    lastUpdatedBy_id?: string;
    id?: string;
    jobId?: string;
    runParallel?: boolean;
    applyEachBulkElement?: boolean;
    sequence?: Sequence;
    definition?: GsbEntityDef;
    lastUpdatedBy?: GsbUser;
    createInstance?: boolean;
    workflow?: GsbWorkflow;
    orderNumber?: number;
    lastUpdateDate?: Date;
    createDate?: Date;
    constructor(obj?: Partial<GsbWorkflowTrigger>);
}
export declare enum Sequence {
    Previously = 1,
    After = 2
}
