import { DatasetorderTemplate, SignedDatasetorder } from 'iexec/IExecOrderModule';
import { Address, AddressOrENS, ParamSet } from './common.js';
/**
 * Options for creating an oracle.
 */
export type CreateOracleOptions = {
    oracleAppWhitelist?: AddressOrENS;
    ipfsGateway?: string;
    ipfsNode?: string;
};
export type ApiKeyEncryptionKeyCreatedMessage = {
    message: 'ENCRYPTION_KEY_CREATED';
    key: string;
};
export type ApiKeyEncryptedMessage = {
    message: 'FILE_ENCRYPTED';
    encryptedFile: Buffer;
    checksum: string;
};
export type ApiKeyUploadedMessage = {
    message: 'ENCRYPTED_FILE_UPLOADED';
    cid: string;
    multiaddr: string;
};
export type ApiKeyDatasetDeployRequestMessage = {
    message: 'DATASET_DEPLOYMENT_SIGN_TX_REQUEST';
};
export type ApiKeyDatasetDeploySuccessMessage = {
    message: 'DATASET_DEPLOYMENT_SUCCESS';
    address: Address;
    txHash: string;
};
export type ApiKeyPushSecretRequestMessage = {
    message: 'PUSH_SECRET_TO_SMS_SIGN_REQUEST';
};
export type ApiKeyPushSecretSuccessMessage = {
    message: 'PUSH_SECRET_TO_SMS_SUCCESS';
};
export type ApiKeySignOrderRequestMessage = {
    message: 'DATASET_ORDER_SIGNATURE_SIGN_REQUEST';
    order: DatasetorderTemplate;
};
export type ApiKeySignOrderSuccessMessage = {
    message: 'DATASET_ORDER_SIGNATURE_SUCCESS';
    order: SignedDatasetorder;
};
export type ApiKeyPublishOrderRequestMessage = {
    message: 'DATASET_ORDER_PUBLISH_SIGN_REQUEST';
    order: SignedDatasetorder;
};
export type ApiKeyPublishOrderSuccessMessage = {
    message: 'DATASET_ORDER_PUBLISH_SUCCESS';
    orderHash: string;
};
export type CreateApiKeyDatasetMessage = ApiKeyEncryptionKeyCreatedMessage | ApiKeyEncryptedMessage | ApiKeyUploadedMessage | ApiKeyDatasetDeployRequestMessage | ApiKeyDatasetDeploySuccessMessage | ApiKeyPushSecretRequestMessage | ApiKeyPushSecretSuccessMessage | ApiKeySignOrderRequestMessage | ApiKeySignOrderSuccessMessage | ApiKeyPublishOrderRequestMessage | ApiKeyPublishOrderSuccessMessage;
export type ParamSetCreatedMessage = {
    message: 'PARAM_SET_CREATED';
    paramSet: ParamSet;
};
export type OracleIDComputedMessage = {
    message: 'ORACLE_ID_COMPUTED';
    oracleId: string;
};
export type ParamSetUploadedMessage = {
    message: 'PARAM_SET_UPLOADED';
    cid: string;
    multiaddr: string;
};
export type CreateOracleMessage = CreateApiKeyDatasetMessage | ParamSetCreatedMessage | OracleIDComputedMessage | ParamSetUploadedMessage;
