export declare class FormSchemaDto {
    type: string;
    properties?: Record<string, any>;
    required?: string[];
}
export declare class UiSchemaDto {
    'ui:order'?: string[];
    [key: string]: any;
}
export declare class FormDesignDto {
    schema: FormSchemaDto;
    uiSchema?: UiSchemaDto;
}
export declare class ProcessNodeConfigDto {
    approverType?: string;
    approvers?: string[];
    approverDetails?: Array<{
        id: string;
        displayName: string;
        username?: string;
        email?: string;
        avatar?: string;
        department?: string;
    }>;
    approvalMode?: string;
    chainConfig?: {
        stopCondition?: string;
        includeTerminator?: boolean;
        skipSelf?: boolean;
        autoApprove?: string;
        maxLevels?: number;
    };
    editableFields?: string[];
    requiredFields?: string[];
    hiddenFields?: string[];
    timeout?: {
        hours: number;
        remindBeforeHours?: number;
        action?: string;
    };
    condition?: string;
    conditionLabel?: string;
    allowedActions?: string[];
}
export declare class ProcessNodeDto {
    id: string;
    type: string;
    name: string;
    config?: ProcessNodeConfigDto;
}
export declare class ProcessEdgeDto {
    source: string;
    target: string;
    condition?: string;
}
export declare class ProcessDesignDto {
    nodes: ProcessNodeDto[];
    edges: ProcessEdgeDto[];
}
export declare class SaveDesignDto {
    formDesign: FormDesignDto;
    processDesign: ProcessDesignDto;
}
export declare class SaveFormDesignDto {
    schema: FormSchemaDto;
    uiSchema?: UiSchemaDto;
}
export declare class SaveProcessDesignDto {
    nodes: ProcessNodeDto[];
    edges: ProcessEdgeDto[];
}
export declare class DesignDataResponse {
    formDefinition: {
        id: string;
        key: string;
        name: string;
    };
    formVersion: {
        id: string;
        version: number;
        status: string;
        schema: any;
        uiSchema?: any;
    };
    processVersion: {
        id: string;
        version: number;
        status: string;
        model: {
            nodes: ProcessNodeDto[];
            edges: ProcessEdgeDto[];
        };
    };
}
export declare class SaveDesignResponse {
    formVersionId: string;
    processVersionId: string;
    savedAt: string;
}
