import { MirrorNodeAdapter } from '../../out/mirror/MirrorNodeAdapter';
import Injectable from '../../../core/injectable/Injectable';
import { QueryBus } from '../../../core/query/QueryBus';
import { CommandBus } from '../../../core/command/CommandBus';
import { SecurityControlListType } from '../../../domain/context/security/SecurityControlListType';
import { SecurityInPortAgent } from './agent/Agent';
import { SecurityInPortPause } from './pause/Pause';
import { SecurityInPortControlList, } from './controlList/ControlList';
import { SecurityInPortBalance, } from './balance/Balance';
import { SecurityInPortLock } from './lock/Lock';
import { applyMixins } from '../utils';
import { SecurityInPortClearing, } from './clearing/Clearing';
import { SecurityInPortCompliance, } from './compliance/Compliance';
import { SecurityInPortFreeze } from './freeze/Freeze';
import { SecurityInPortHold } from './hold/Hold';
import { SecurityInPortIdentity, } from './identity/Identity';
import { SecurityInPortInfo } from './info/Info';
import { SecurityInPortIssue } from './issue/Issue';
import { SecurityInPortProtectedPartitions, } from './protectedPartitions/ProtectedPartitions';
import { SecurityInPortRecovery, } from './recovery/Recovery';
import { SecurityInPortRedeem } from './redeem/Redeem';
import { SecurityInPortSupply } from './supply/Supply';
import { SecurityInPortTokenMetadata, } from './tokenMetadata/TokenMetadata';
import { SecurityInPortTransfer, } from './transfer/Transfer';
import { BaseSecurityInPort } from './BaseSecurityInPort';
import { SecurityInPortSnapshot, } from './snapshot/Snapshot';
export { SecurityControlListType };
class SecurityInPort extends BaseSecurityInPort {
    constructor(queryBus = Injectable.resolve(QueryBus), commandBus = Injectable.resolve(CommandBus), mirrorNode = Injectable.resolve(MirrorNodeAdapter)) {
        super();
        this.queryBus = queryBus;
        this.commandBus = commandBus;
        this.mirrorNode = mirrorNode;
    }
}
applyMixins(SecurityInPort, [
    SecurityInPortAgent,
    SecurityInPortBalance,
    SecurityInPortClearing,
    SecurityInPortCompliance,
    SecurityInPortControlList,
    SecurityInPortFreeze,
    SecurityInPortHold,
    SecurityInPortIdentity,
    SecurityInPortInfo,
    SecurityInPortIssue,
    SecurityInPortLock,
    SecurityInPortPause,
    SecurityInPortProtectedPartitions,
    SecurityInPortRecovery,
    SecurityInPortRedeem,
    SecurityInPortSupply,
    SecurityInPortTokenMetadata,
    SecurityInPortTransfer,
    SecurityInPortSnapshot,
]);
export default new SecurityInPort();
