import { Signer, Contract, BigNumber } from 'ethers';
export declare class PartnerConfiguration {
    private readonly partnerConfigurationAddress;
    readonly partnerConfiguration: Contract;
    readonly signer: Signer;
    constructor(partnerConfigurationAddress: string, signer: Signer);
    /**
     * returns the minimum length allowed for a domain name
     */
    getMinLength(): Promise<BigNumber>;
    /**
     * returns the maximum length allowed for a domain name
     */
    getMaxLength(): Promise<BigNumber>;
    /**
     * returns the minimum duration allowed for a domain name
     */
    getMinDuration(): Promise<BigNumber>;
    /**
     * returns the maximum duration allowed for a domain name
     */
    getMaxDuration(): Promise<BigNumber>;
    /**
     * returns the minimum commitment age allowed for a domain name
     */
    getMinCommitmentAge(): Promise<BigNumber>;
    /**
     * returns the fee percentage assigned to the partner for each domain name registered
     */
    getFeePercentage(): Promise<BigNumber>;
    /**
     * returns the discount assigned to the partner for each domain name registered
     */
    getDiscount(): Promise<BigNumber>;
    /**
     * returns the price of a domain name
     *
     * @param name the domain name
     * @param expires the number of years to expire
     * @param duration the duration for the registration
     */
    getPrice(name: string, expires: BigNumber, duration: BigNumber): Promise<BigNumber>;
    /**
     * checks if the name is valid and throws an error if not
     *
     * @param label the domain name
     * @param duration the duration for the registration
     */
    validateName(label: string, duration: BigNumber): Promise<void>;
    /**
     * sets the discount assigned to the partner for each domain name registered
     *
     * @param discount the discount assigned to the partner for each domain name registered
     */
    setDiscount(discount: BigNumber): Promise<void>;
    /**
     * sets the maximum duration allowed for a domain name
     *
     * @param maxDuration the maximum duration allowed for a domain name in days
     */
    setMaxDuration(maxDuration: BigNumber): Promise<void>;
    /**
     * sets the minimum length allowed for a domain name
     *
     * @param minLength the minimum length allowed for a domain name
     */
    setMinLength(minLength: BigNumber): Promise<void>;
    /**
     * sets the maximum length allowed for a domain name
     *
     * @param maxLength the maximum length allowed for a domain name
     */
    setMaxLength(maxLength: BigNumber): Promise<void>;
    /**
     * sets the minimum commitment age allowed for a domain name
     *
     * @param minCommitmentAge the minimum commitment age allowed for a domain name in seconds
     */
    setMinCommitmentAge(minCommitmentAge: BigNumber): Promise<void>;
    /**
     * sets the fee percentage assigned to the partner for each domain name registered
     *
     * @param feePercentage the new fee percentage
     */
    setFeePercentage(feePercentage: BigNumber): Promise<void>;
    /**
     * sets the minimum duration allowed for a domain name
     *
     * @param minDuration the minimum duration allowed for a domain name in days
     */
    setMinDuration(minDuration: BigNumber): Promise<void>;
}
