"use strict";
// Copyright 2017-2020 @polkadot/types authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sanitize_1 = __importDefault(require("../create/sanitize"));
const Text_1 = __importDefault(require("./Text"));
/**
 * @name Type
 * @description
 * This is a extended version of String, specifically to handle types. Here we rely fully
 * on what string provides us, however we also adjust the types received from the runtime,
 * i.e. we remove the `T::` prefixes found in some types for consistency across implementation.
 */
class Type extends Text_1.default {
    constructor(registry, value = '') {
        super(registry, value);
        this.setOverride(sanitize_1.default(this.toString()));
    }
    /**
     * @description Returns the base runtime type name for this instance
     */
    toRawType() {
        return 'Type';
    }
}
exports.default = Type;
