import { LosslessNumber } from 'lossless-json';
import { LosslessDto } from '../../lib';
export declare class DecisionDefinition extends LosslessDto {
    id: string;
    key: string;
    decisionId: string;
    name: string;
    version: number;
    decisionRequirementsId: string;
    decisionRequirementsKey: string;
    decisionRequirementsName: string;
    decisionRequirementsVersion: number;
    tenantId: string | undefined;
}
export declare class DecisionInstanceInput extends LosslessDto {
    id: string;
    name: string;
    value: string;
}
export declare class DecisionInstanceOutput extends LosslessDto {
    id: string;
    name: string;
    value: string;
    ruleId: string;
    ruleIndex: number;
}
export declare class DecisionInstance extends LosslessDto {
    id: string;
    key: string;
    state: 'FAILED' | 'EVALUATED' | 'UNKNOWN' | 'UNSPECIFIED';
    evaluationDate: string;
    evaluationFailure: string;
    processDefinitionKey: string;
    processInstanceKey: string;
    decisionId: string;
    decisionDefinitionId: string;
    decisionName: string;
    decisionVersion: number;
    decisionType: 'DECISION_TABLE' | 'LITERAL_EXPRESSION' | 'UNSPECIFIED' | 'UNKNOWN';
    result: string;
    evaluatedInputs: DecisionInstanceInput[];
    evaluatedOutputs: DecisionInstanceOutput[];
    tenantId: string | undefined;
}
export declare class DecisionRequirements extends LosslessDto {
    id: string;
    key: string;
    decisionRequirementsId: string;
    name: string;
    version: number;
    resourceName: string;
    tenantId: string | undefined;
}
export declare class ProcessDefinition extends LosslessDto {
    /** ProcessDefinition key is a string in the SDK, but it's an int64 number in the database */
    key: string;
    name: string;
    version: number;
    bpmnProcessId: string;
}
export declare class ProcessInstance extends LosslessDto {
    key: string;
    processVersion: number;
    bpmnProcessId: string;
    parentKey?: string;
    parentFlowNodeInstanceKey?: string;
    startDate: string;
    endDate: string;
    state: 'ACTIVE' | 'COMPLETED' | 'CANCELED';
    processDefinitionKey: string;
    tenantId: string | undefined;
}
export declare class Incident extends LosslessDto {
    key: string;
    processDefinitionKey: LosslessNumber;
    processInstanceKey: LosslessNumber;
    type: 'UNSPECIFIED' | 'UNKNOWN' | 'IO_MAPPING_ERROR' | 'JOB_NO_RETRIES' | 'CONDITION_ERROR' | 'EXTRACT_VALUE_ERROR' | 'CALLED_ELEMENT_ERROR' | 'UNHANDLED_ERROR_EVENT' | 'MESSAGE_SIZE_EXCEEDED' | 'CALLED_DECISION_ERROR' | 'DECISION_EVALUATION_ERROR';
    message: string;
    creationTime: string;
    state: 'ACTIVE' | 'RESOLVED';
    jobKey: string;
    tenantId: string | undefined;
}
export declare class FlownodeInstance extends LosslessDto {
    key: string;
    processInstanceKey: string;
    startDate: string;
    endDate: string;
    incidentKey?: string;
    type: 'UNSPECIFIED' | 'PROCESS' | 'SUB_PROCESS' | 'EVENT_SUB_PROCESS' | 'START_EVENT' | 'INTERMEDIATE_CATCH_EVENT' | 'INTERMEDIATE_THROW_EVENT' | 'BOUNDARY_EVENT' | 'END_EVENT' | 'SERVICE_TASK' | 'RECEIVE_TASK' | 'USER_TASK' | 'MANUAL_TASK' | 'TASK' | 'EXCLUSIVE_GATEWAY' | 'INCLUSIVE_GATEWAY' | 'PARALLEL_GATEWAY' | 'EVENT_BASED_GATEWAY' | 'SEQUENCE_FLOW' | 'MULTI_INSTANCE_BODY' | 'CALL_ACTIVITY' | 'BUSINESS_RULE_TASK' | 'SCRIPT_TASK' | 'SEND_TASK' | 'UNKNOWN';
    state: 'ACTIVE' | 'COMPLETED' | 'TERMINATED';
    incident: boolean;
    tenantId: string | undefined;
}
export declare class Variable extends LosslessDto {
    key: string;
    processInstanceKey: string;
    scopeKey: string;
    name: string;
    value: string;
    truncated: boolean;
}
export declare class ChangeStatus extends LosslessDto {
    message: string;
    deleted: string;
}
export declare class ProcessInstanceStatistics extends LosslessDto {
    activityId: string;
    active: string;
    canceled: string;
    incidents: string;
    completed: string;
}
export interface Query<T> {
    filter?: Partial<T>;
    size?: number;
    sort?: [{
        field: keyof T;
        order: 'ASC' | 'DESC';
    }];
    searchAfter?: unknown[];
}
export interface SearchResults<T> {
    items: T[];
    sortValues: unknown[];
    total: string;
}
