import { SharedConnectorService } from "./shared-connector.service";
import { OptionsService } from "./options.service";
import { Printer } from '@colijnit/mainapi/build/model/printer.bo';
import { SendMethod } from '@colijnit/mainapi/build/model/send-method.bo';
import { TagCategory } from "@colijnit/mainapi/build/enum/tab-category.enum";
import { TagTreeItem } from "@colijnit/mainapi/build/model/tag-tree-item.bo";
import { RelationRequest } from "@colijnit/relationapi/build/model/relation-request";
import { RelationListObject } from "@colijnit/relationapi/build/model/relation-list-object.bo";
import { TaskCategory } from "@colijnit/mainapi/build/model/task-category.bo";
import { TableName } from "@colijnit/mainapi/build/enum/table-name.enum";
import { WorkflowProcess } from "@colijnit/mainapi/build/model/workflow-process";
import { DomainName } from "@colijnit/mainapi/build/enum/domain-name.enum";
import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
import { RoleEmailaddress } from "@colijnit/mainapi/build/model/role-email-address";
import { Activity } from "@colijnit/mainapi/build/model/activity.bo";
import { ValidationResult } from "@colijnit/ioneconnector/build/model/validation-result";
import { Task } from "@colijnit/mainapi/build/model/task.bo";
import { WorkflowProcessInfoPerStatus } from "@colijnit/mainapi/build/model/workflow-process-info-per-status";
import { RelationSmallObject } from "@colijnit/mainapi/build/model/relation-small-object.bo";
import { Report } from "@colijnit/mainapi/build/model/report.bo";
import { ReportType } from "@colijnit/mainapi/build/enum/report-type.enum";
import { LanguageCode } from "../enum/language-code.enum";
import { Work } from "@colijnit/mainapi/build/model/work.bo";
import { Remark } from "@colijnit/mainapi/build/model/remark.bo";
import { ActivityEmailHistory } from "@colijnit/mainapi/build/model/activity-email-history.bo";
import { ActivityWorkflow } from "@colijnit/mainapi/build/model/activity-workflow";
import { CoEmailAttachment } from "@colijnit/mainapi/build/model/co-email-attachment.bo";
import { SharedComponentsDictionaryService } from '../translation/shared-components-dictionary.service';
import { CoDocument } from "@colijnit/mainapi/build/model/co-document.bo";
import { EmailActivityRequest } from "@colijnit/mainapi/build/model/email-activity-request";
export declare class SharedService {
    protected readonly locale: LanguageCode;
    protected options: OptionsService;
    protected connector: SharedConnectorService;
    protected dictionary: SharedComponentsDictionaryService;
    constructor(locale: LanguageCode, options: OptionsService, connector: SharedConnectorService, dictionary: SharedComponentsDictionaryService);
    init(options: any): Promise<void>;
    connect(): Promise<void>;
    getAllPrinters(): Promise<Printer[]>;
    getSendMethods(): Promise<SendMethod[]>;
    getScreenConfigTree(): Promise<any>;
    getScreenConfigSubRubric(parentRubricId: number, configId: number, fixedKey: string): Promise<any>;
    getTagsFullTree(category: TagCategory, includeTags?: boolean): Promise<TagTreeItem[]>;
    getJoinedTags(table: string, key: string): Promise<TagTreeItem[]>;
    getDocumentContent(docId: number, thumbnail?: boolean): Promise<string>;
    getComponentActivitiesWithoutRelationFiltering(table: TableName, key: string): Promise<Activity[]>;
    getRelationSmallObject(relationId: number): Promise<RelationSmallObject>;
    getWorkflowStatusForActivity(table: TableName, key: string, component: string): Promise<ActivityWorkflow>;
    insertActivity(activity: Activity): Promise<boolean>;
    insertWork(activity: Activity): Promise<Work>;
    insertRemark(activity: Activity): Promise<Remark>;
    insertTask(activity: Activity): Promise<Task>;
    updateActivity(activity: Activity): Promise<boolean>;
    deleteActivity(activity: Activity): Promise<boolean>;
    lockTask(id: number): Promise<boolean>;
    canFireTrigger(activity: Activity, task: Task): boolean;
    fireTrigger(workFlowProcessId: number, sequence: number, triggerId: number): Promise<ValidationResult>;
    fireGenericTrigger(workFlowProcessId: number, genericTransitionId: number, relationId: number): Promise<ValidationResult>;
    getRelationListObjects(request: RelationRequest): Promise<RelationListObject[]>;
    getTaskCategories(): Promise<TaskCategory[]>;
    getActiveProcessesByTableAndKey(table: TableName, key: string): Promise<WorkflowProcess[]>;
    getDomainCollection(languageCode: string, domainName: DomainName): Promise<CoDomainValue[]>;
    getRoleEmailAddressesByWorkflowCategoryAndKey(workflowCategory: string, key: string): Promise<RoleEmailaddress[]>;
    getEmailSenderByWorkflowCategoryAndKey(workflowCategory: string, key: string): Promise<string>;
    getDefaultEmailReportTemplatesForBranch(branchNr: string, reportType: ReportType): Promise<Report[]>;
    emailViaTemplate(template: Report, emailTo: string, emailBcc: string, reply: string, subject?: string, message?: string, attachments?: CoEmailAttachment[], parameters?: object): Promise<boolean>;
    private _createEmailJob;
    emailActivity(emailActivityRequest: EmailActivityRequest): Promise<CoDocument | boolean>;
    insertEmailHistoryForRemark(history: ActivityEmailHistory): Promise<boolean>;
    insertEmailHistoryForWork(history: ActivityEmailHistory): Promise<boolean>;
    insertEmailHistoryForTask(history: ActivityEmailHistory): Promise<boolean>;
    getWorkflowProcessInfoPerStatus(workflowCategory: string): Promise<WorkflowProcessInfoPerStatus[]>;
    getActivities(table: TableName, key: string): Promise<Activity[]>;
}
