/**
 * Facilitates wallet operations over the window.CWI interface.
 */
export default class WindowCWISubstrate {
    CWI;
    constructor() {
        if (typeof window !== 'object') {
            throw new TypeError('The window.CWI substrate requires a global window object.');
        }
        if (typeof window.CWI !== 'object') {
            throw new TypeError('The window.CWI interface does not appear to be bound to the window object.');
        }
        this.CWI = window.CWI; // Binding CWI to prevent changes
    }
    async createAction(args, originator) {
        return await this.CWI.createAction(args, originator);
    }
    async signAction(args, originator) {
        return await this.CWI.signAction(args, originator);
    }
    async abortAction(args, originator) {
        return await this.CWI.abortAction(args, originator);
    }
    async listActions(args, originator) {
        return await this.CWI.listActions(args, originator);
    }
    async internalizeAction(args, originator) {
        return await this.CWI.internalizeAction(args, originator);
    }
    async listOutputs(args, originator) {
        return await this.CWI.listOutputs(args, originator);
    }
    async relinquishOutput(args, originator) {
        return await this.CWI.relinquishOutput(args, originator);
    }
    async getPublicKey(args, originator) {
        return await this.CWI.getPublicKey(args, originator);
    }
    async revealCounterpartyKeyLinkage(args, originator) {
        return await this.CWI.revealCounterpartyKeyLinkage(args, originator);
    }
    async revealSpecificKeyLinkage(args, originator) {
        return await this.CWI.revealSpecificKeyLinkage(args, originator);
    }
    async encrypt(args, originator) {
        return await this.CWI.encrypt(args, originator);
    }
    async decrypt(args, originator) {
        return await this.CWI.decrypt(args, originator);
    }
    async createHmac(args, originator) {
        return await this.CWI.createHmac(args, originator);
    }
    async verifyHmac(args, originator) {
        return await this.CWI.verifyHmac(args, originator);
    }
    async createSignature(args, originator) {
        return await this.CWI.createSignature(args, originator);
    }
    async verifySignature(args, originator) {
        return await this.CWI.verifySignature(args, originator);
    }
    async acquireCertificate(args, originator) {
        return await this.CWI.acquireCertificate(args, originator);
    }
    async listCertificates(args, originator) {
        return await this.CWI.listCertificates(args, originator);
    }
    async proveCertificate(args, originator) {
        return await this.CWI.proveCertificate(args, originator);
    }
    async relinquishCertificate(args, originator) {
        return await this.CWI.relinquishCertificate(args, originator);
    }
    async discoverByIdentityKey(args, originator) {
        return await this.CWI.discoverByIdentityKey(args, originator);
    }
    async discoverByAttributes(args, originator) {
        return await this.CWI.discoverByAttributes(args, originator);
    }
    async isAuthenticated(args, originator) {
        return await this.CWI.isAuthenticated(args, originator);
    }
    async waitForAuthentication(args, originator) {
        return await this.CWI.waitForAuthentication(args, originator);
    }
    async getHeight(args, originator) {
        return await this.CWI.getHeight(args, originator);
    }
    async getHeaderForHeight(args, originator) {
        return await this.CWI.getHeaderForHeight(args, originator);
    }
    async getNetwork(args, originator) {
        return await this.CWI.getNetwork(args, originator);
    }
    async getVersion(args, originator) {
        return await this.CWI.getVersion(args, originator);
    }
}
//# sourceMappingURL=window.CWI.js.map