import * as yup from "yup";
import { ITokenInfo } from "./../utils/tokenInfoManager";
import { BigNumberish } from "@ethersproject/bignumber";
import { CreateOfferArgs } from "./types";
import { OfferFieldsFragment } from "../subgraph";
export type AdditionalOfferMetadata = {
    sellerContactMethod: string;
    disputeResolverContactMethod: string;
    escalationDeposit: BigNumberish;
    escalationResponsePeriodInSec: BigNumberish;
    sellerTradingName: string;
    returnPeriodInDays: number;
};
export type TemplateRenderingData = CreateOfferArgs & AdditionalOfferMetadata & {
    priceValue: string;
    sellerDepositValue: string;
    buyerCancelPenaltyValue: string;
    escalationDepositValue: string;
    exchangeTokenSymbol: string;
    hasExpirationDate: boolean;
    toISOString: () => void;
    msecToDay: () => void;
    secToDay: () => void;
};
export declare class InvalidOfferDataError extends Error {
    missingProperties: string[];
    constructor(missingProperties: string[]);
}
export declare class InvalidOfferMetadataError extends Error {
    missingProperties: string[];
    constructor(missingProperties: string[]);
}
export declare const baseOfferDataSchema: yup.ObjectSchema<BaseOfferData>;
export type BaseOfferData = {
    price: BigNumberish;
    sellerDeposit: BigNumberish;
    agentId: BigNumberish;
    buyerCancelPenalty: BigNumberish;
    quantityAvailable: BigNumberish;
    validFromDateInMS: BigNumberish;
    validUntilDateInMS: BigNumberish;
    voucherRedeemableFromDateInMS: BigNumberish;
    voucherRedeemableUntilDateInMS: BigNumberish;
    disputePeriodDurationInMS: BigNumberish;
    resolutionPeriodDurationInMS: BigNumberish;
    exchangeToken: string;
    disputeResolverId: BigNumberish;
    metadataUri: string;
    metadataHash: string;
};
export declare const baseOfferMetadataSchema: yup.ObjectSchema<AdditionalOfferMetadata>;
export declare function prepareRenderingData(offerData: CreateOfferArgs, offerMetadata: AdditionalOfferMetadata, tokenInfo: ITokenInfo): Promise<TemplateRenderingData>;
export declare function renderContractualAgreement(template: string, offerData: CreateOfferArgs, offerMetadata: AdditionalOfferMetadata, tokenInfo: ITokenInfo): Promise<string>;
export declare function renderContractualAgreementForOffer(existingOfferData: OfferFieldsFragment): Promise<string>;
//# sourceMappingURL=renderContractualAgreement.d.ts.map