import { AccountId } from '../..';
import { u16 } from '../../utils/type-aliases';
import { SlotCommitmentId } from '../slot';
declare enum ContextInputType {
    /**
     * The context input type of a `CommitmentContextInput`.
     */
    COMMITMENT = 0,
    /**
     * The context input type of a `BlockIssuanceCreditContextInput`.
     */
    BLOCK_ISSUANCE_CREDIT = 1,
    /**
     * The context input type of a `RewardContextInput`.
     */
    REWARD = 2
}
declare abstract class ContextInput {
    readonly type: ContextInputType;
    constructor(type: ContextInputType);
}
/**
 * A Commitment Context Input references a commitment to a certain slot.
 */
declare class CommitmentContextInput extends ContextInput {
    readonly commitmentId: SlotCommitmentId;
    constructor(commitmentId: SlotCommitmentId);
}
/**
 * A Block Issuance Credit (BIC) Context Input provides the VM with context for the value of
 * the BIC vector of a specific slot.
 */
declare class BlockIssuanceCreditContextInput extends ContextInput {
    readonly accountId: AccountId;
    constructor(accountId: AccountId);
}
/**
 * A Reward Context Input indicates which transaction Input is claiming Mana rewards.
 */
declare class RewardContextInput extends ContextInput {
    readonly index: u16;
    constructor(index: u16);
}
declare const ContextInputDiscriminator: {
    property: string;
    subTypes: ({
        value: typeof CommitmentContextInput;
        name: any;
    } | {
        value: typeof BlockIssuanceCreditContextInput;
        name: any;
    } | {
        value: typeof RewardContextInput;
        name: any;
    })[];
};
export { ContextInputType, ContextInput, CommitmentContextInput, RewardContextInput, BlockIssuanceCreditContextInput, ContextInputDiscriminator, };
