import IRegistrar from '../../src/registrars/IRegistrar';
import Identifier from '../../src/Identifier';
import IdentifierDocument from '../../src/IdentifierDocument';
import RegistrarCryptoOptions from '../../src/registrars/RegistrarCryptoOptions';
/**
 * Implementation of a registrar for testing.
 */
export default class TestRegistrar implements IRegistrar {
    private identifier;
    private identifierDocument;
    /**
     * Crypto options for the Registrar
     */
    registrarCryptoOptions: RegistrarCryptoOptions;
    /**
     * Prepares the resolver for the test run.
     * @param identifier to use for the test.
     * @param identifierDocument to use for the test.
     */
    prepareTest(identifier: Identifier, identifierDocument: IdentifierDocument): void;
    /**
     * Registers the identifier document on the ledger
     * returning the identifier generated by the registrar.
     * @inheritdoc
     */
    register(identifierDocument: IdentifierDocument): Promise<Identifier>;
    /**
     * Uses the specified input for generating
     * an identifier reference, but does not register
     * with a ledger.
     * @inheritdoc
     */
    generateIdentifier(input: any): Promise<Identifier>;
}
