export interface UsageRecord {
    /** Timestamp, in UTC, for which the usage is being reported. Your application can meter usage for up to six hours in the past. Make sure the timestamp value is not before the start of the software usage. */
    Timestamp: string;
    /** The CustomerIdentifier is obtained through the ResolveCustomer operation and represents an individual buyer in your application. */
    CustomerIdentifier?: string;
    /** During the process of registering a product on Amazon Web Services Marketplace, dimensions are specified. These represent different units of value in your application. */
    Dimension: string;
    /** The quantity of usage consumed by the customer for the given dimension and time. Defaults to 0 if not specified. */
    Quantity?: number;
    /** The set of UsageAllocations to submit. The sum of all UsageAllocation quantities must equal the Quantity of the UsageRecord. */
    UsageAllocations?: any[];
    /** The CustomerAWSAccountID parameter specifies the AWS account ID of the buyer. */
    CustomerAWSAccountId?: string;
}
export interface UsageAllocation {
    /** The total quantity allocated to this bucket of usage. */
    AllocatedUsageQuantity: number;
    /** The set of tags that define the bucket of usage. For the bucket of items with no tags, this parameter can be left out. */
    Tags?: any[];
}
/** A BatchMeterUsageRequest contains UsageRecords, which indicate quantities of usage within your application. */
export interface BatchMeterUsageInput {
    /** Product code is used to uniquely identify a product in Amazon Web Services Marketplace. The product code should be the same as the one used during the publishing of a new product. */
    ProductCode: string;
    /** The set of UsageRecords to submit. BatchMeterUsage accepts up to 25 UsageRecords at a time. */
    UsageRecords: UsageRecord[];
}
export interface MeterUsageInput {
    /** Product code is used to uniquely identify a product in Amazon Web Services Marketplace. The product code should be the same as the one used during the publishing of a new product. */
    ProductCode: string;
    /** Timestamp, in UTC, for which the usage is being reported. Your application can meter usage for up to six hours in the past. Make sure the timestamp value is not before the start of the software usage. */
    Timestamp: string;
    /** It will be one of the fcp dimension name provided during the publishing of the product. */
    UsageDimension: string;
    /** Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a sec */
    ClientToken?: string;
    /** Checks whether you have the permissions required for the action, but does not make the request. If you have the permissions, the request returns DryRunOperation; otherwise, it returns UnauthorizedExce */
    DryRun?: boolean;
    /** The set of UsageAllocations to submit. The sum of all UsageAllocation quantities must equal the UsageQuantity of the MeterUsage request, and each UsageAllocation must have a unique set of tags (includ */
    UsageAllocations?: UsageAllocation[];
    /** Consumption value for the hour. Defaults to 0 if not specified. */
    UsageQuantity?: number;
}
export interface RegisterUsageInput {
    /** Product code is used to uniquely identify a product in Amazon Web Services Marketplace. The product code should be the same as the one used during the publishing of a new product. */
    ProductCode: string;
    /** Public Key Version provided by Amazon Web Services Marketplace */
    PublicKeyVersion: number;
    /** (Optional) To scope down the registration to a specific running software instance and guard against replay attacks. */
    Nonce?: string;
}
/** Contains input to the ResolveCustomer operation. */
export interface ResolveCustomerInput {
    /** When a buyer visits your website during the registration process, the buyer submits a registration token through the browser. The registration token is resolved to obtain a CustomerIdentifier along wi */
    RegistrationToken: string;
}
/** Marketplace Metering service binding for Step Functions SDK integrations. */
export declare class MarketplaceMetering {
    constructor();
    batchMeterUsage<T>(params: BatchMeterUsageInput): Promise<T>;
    meterUsage<T>(params: MeterUsageInput): Promise<T>;
    registerUsage<T>(params: RegisterUsageInput): Promise<T>;
    resolveCustomer<T>(params: ResolveCustomerInput): Promise<T>;
}
//# sourceMappingURL=MarketplaceMetering.d.ts.map