/**
 * Cloudflare BILLING API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service billing
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
export interface GetProfileRequest {
    /** Identifier */
    accountId: string;
}
export declare const GetProfileRequest: Schema.Schema<GetProfileRequest>;
export interface GetProfileResponse {
    /** Billing item identifier tag. */
    id?: string | null;
    accountType?: string | null;
    address?: string | null;
    address2?: string | null;
    balance?: string | null;
    cardExpiryMonth?: number | null;
    cardExpiryYear?: number | null;
    cardNumber?: string | null;
    city?: string | null;
    company?: string | null;
    country?: string | null;
    createdOn?: string | null;
    deviceData?: string | null;
    editedOn?: string | null;
    enterpriseBillingEmail?: string | null;
    enterprisePrimaryEmail?: string | null;
    firstName?: string | null;
    isPartner?: boolean | null;
    lastName?: string | null;
    nextBillDate?: string | null;
    paymentAddress?: string | null;
    paymentAddress2?: string | null;
    paymentCity?: string | null;
    paymentCountry?: string | null;
    paymentEmail?: string | null;
    paymentFirstName?: string | null;
    paymentGateway?: string | null;
    paymentLastName?: string | null;
    paymentNonce?: string | null;
    paymentState?: string | null;
    paymentZipcode?: string | null;
    primaryEmail?: string | null;
    state?: string | null;
    taxIdType?: string | null;
    telephone?: string | null;
    useLegacy?: boolean | null;
    validationCode?: string | null;
    vat?: string | null;
    zipcode?: string | null;
}
export declare const GetProfileResponse: Schema.Schema<GetProfileResponse>;
export type GetProfileError = DefaultErrors;
export declare const getProfile: API.OperationMethod<GetProfileRequest, GetProfileResponse, GetProfileError, Credentials | HttpClient.HttpClient>;
export interface GetUsageRequest {
    /** Path param: Represents a Cloudflare resource identifier tag. */
    accountId: string;
    /** Query param: Start date for the usage query (ISO 8601). Required if `to` is set. When omitted along with `to`, defaults to the start of the current month. Filters by charge period (when consumption ha */
    from?: string;
    /** Query param: Filter results by billable metric id (e.g., workers_standard_requests). */
    metric?: string;
    /** Query param: End date for the usage query (ISO 8601). Required if `from` is set. When omitted along with `from`, defaults to today. Filters by charge period (when consumption happened), not billing pe */
    to?: string;
}
export declare const GetUsageRequest: Schema.Schema<GetUsageRequest>;
export type GetUsageResponse = {
    billingAccountId: string;
    billingAccountName: string;
    chargeCategory: "Usage";
    chargeDescription: string;
    chargeFrequency: "Usage-Based";
    chargePeriodEnd: string;
    chargePeriodStart: string;
    consumedQuantity: number;
    consumedUnit: string;
    hostProviderName: string;
    invoiceIssuerName: string;
    serviceProviderName: string;
    xBillableMetricName: string;
    billedCost?: number | null;
    billingCurrency?: string | null;
    billingPeriodEnd?: string | null;
    billingPeriodStart?: string | null;
    chargeClass?: "Correction" | null;
    contractedCost?: number | null;
    contractedUnitPrice?: number | null;
    effectiveCost?: number | null;
    listCost?: number | null;
    listUnitPrice?: number | null;
    pricingQuantity?: number | null;
    pricingUnit?: string | null;
    regionId?: string | null;
    regionName?: string | null;
    subAccountId?: string | null;
    subAccountName?: string | null;
    xBillableMetricId?: string | null;
    xProductFamilyName?: string | null;
    xZoneId?: string | null;
    xZoneName?: string | null;
}[];
export declare const GetUsageResponse: Schema.Schema<GetUsageResponse>;
export type GetUsageError = DefaultErrors;
export declare const getUsage: API.OperationMethod<GetUsageRequest, GetUsageResponse, GetUsageError, Credentials | HttpClient.HttpClient>;
export interface PaygoUsageRequest {
    /** Path param: Represents a Cloudflare resource identifier tag. */
    accountId: string;
    /** Query param: Start date for the usage query (ISO 8601). */
    from?: string;
    /** Query param: End date for the usage query (ISO 8601). */
    to?: string;
}
export declare const PaygoUsageRequest: Schema.Schema<PaygoUsageRequest>;
export type PaygoUsageResponse = {
    billingCurrency: string;
    billingPeriodStart: string;
    chargePeriodEnd: string;
    chargePeriodStart: string;
    consumedQuantity: number;
    consumedUnit: string;
    contractedCost: number;
    cumulatedContractedCost: number;
    cumulatedPricingQuantity: number;
    pricingQuantity: number;
    serviceName: string;
    serviceFamilyName?: string | null;
}[];
export declare const PaygoUsageResponse: Schema.Schema<PaygoUsageResponse>;
export type PaygoUsageError = DefaultErrors;
export declare const paygoUsage: API.OperationMethod<PaygoUsageRequest, PaygoUsageResponse, PaygoUsageError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=billing.d.ts.map