import { SharedContracts } from './shared-contracts';
export declare namespace WorkflowContracts {
    interface IWorkflowStepContract {
        id: string;
        name: string;
        codename: string;
        transitions_to: string[];
    }
    type WorkflowColor = 'gray' | 'red' | 'rose' | 'light-purple' | 'dark-purple' | 'dark-blue' | 'light-blue' | 'sky-blue' | 'mint-green' | 'persian-green' | 'dark-green' | 'light-green' | 'yellow' | 'pink' | 'orange' | 'brown';
    type IListWorkflowsResponseContract = IWorkflowContract[];
    type IAddWorkflowContract = IWorkflowContract;
    type IUpdateWorkflowContract = IWorkflowContract;
    interface IWorkflowScopeContract {
        content_types: SharedContracts.IReferenceObjectContract[];
        collections: SharedContracts.IReferenceObjectContract[];
    }
    interface IWorkflowStepTransitionsToContract {
        step: SharedContracts.IReferenceObjectContract;
    }
    interface IWorkflowPublishedStepContract {
        id: string;
        name: string;
        codename: string;
        create_new_version_role_ids: string[];
        unpublish_role_ids: string[];
    }
    interface IWorkflowScheduledStepContract {
        id: string;
        name: string;
        codename: string;
    }
    interface IWorkflowArchivedStepContract {
        id: string;
        name: string;
        codename: string;
        role_ids: string[];
    }
    interface IWorkflowStepNewContract {
        id: string;
        name: string;
        codename: string;
        color: WorkflowColor;
        transitions_to: IWorkflowStepTransitionsToContract[];
        role_ids: string[];
    }
    interface IWorkflowContract {
        id: string;
        name: string;
        codename: string;
        scopes: IWorkflowScopeContract[];
        steps: IWorkflowStepNewContract[];
        published_step: IWorkflowPublishedStepContract;
        scheduled_step: IWorkflowPublishedStepContract;
        archived_step: IWorkflowArchivedStepContract;
    }
}
