/// <reference path="./sigApi.SchemeBranch.d.ts" />

declare namespace SigApi {
    interface Scheme {
        /**
         * Returns the name of a scheme
         * 
         * @returns {string} The name of the scheme
         */
        getName(): string
        /**
         * Returns the id of a scheme
         * 
         * @returns {number} The id of the scheme
         */
        getId(): number
        /**
         * Returns the type of a scheme
         * 
         * @returns {number} a type constant (SIG_CONST.SCHEME_TYPE_...)
         */
        getType(): number
        /**
         * Returns the branches of the scheme
         * 
         * @returns {SchemeBranch[]} The branches of the scheme 
         */
        getBranches(): SchemeBranch[]
        /**
         * Returns the Branch which matches the input
         * 
         * @param {number} input The input value which should be evaluated
         * 
         * @returns {SchemeBranch|null} The Branch which matches the input or null if no branch matches 
         */
        getActiveBranch(input: number): SchemeBranch | null
    }
}
