import { LongRunningOperationStatus, type BaseCollectionPaginationCountResponse, type Entity, type PublicError } from '../../index.js';
import { type AdditionalDataHolder, type BackedModel, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export type AttributeSet = (typeof AttributeSetObject)[keyof typeof AttributeSetObject];
export interface AzureUsage extends Entity, Parsable {
    /**
     * The billed property
     */
    billed?: BilledUsage | null;
    /**
     * The unbilled property
     */
    unbilled?: UnbilledUsage | null;
}
export interface BilledReconciliation extends Entity, Parsable {
}
export interface BilledUsage extends Entity, Parsable {
}
export interface Billing extends Entity, Parsable {
    /**
     * Represents metadata for the exported data.
     */
    manifests?: Manifest[] | null;
    /**
     * Represents an operation to export the billing data of a partner.
     */
    operations?: Operation[] | null;
    /**
     * The reconciliation property
     */
    reconciliation?: BillingReconciliation | null;
    /**
     * The usage property
     */
    usage?: AzureUsage | null;
}
export type BillingPeriod = (typeof BillingPeriodObject)[keyof typeof BillingPeriodObject];
export interface BillingReconciliation extends Entity, Parsable {
    /**
     * The billed property
     */
    billed?: BilledReconciliation | null;
    /**
     * The unbilled property
     */
    unbilled?: UnbilledReconciliation | null;
}
export interface Blob extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
     */
    additionalData?: Record<string, unknown>;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The blob name.
     */
    name?: string | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The partition that contains the file. A large partition is split into multiple files, each with the same partitionValue.
     */
    partitionValue?: string | null;
}
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {AzureUsage}
 */
export declare function createAzureUsageFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BilledReconciliation}
 */
export declare function createBilledReconciliationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BilledUsage}
 */
export declare function createBilledUsageFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Billing}
 */
export declare function createBillingFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {BillingReconciliation}
 */
export declare function createBillingReconciliationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Blob}
 */
export declare function createBlobFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ExportSuccessOperation}
 */
export declare function createExportSuccessOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {FailedOperation}
 */
export declare function createFailedOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {ManifestCollectionResponse}
 */
export declare function createManifestCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Manifest}
 */
export declare function createManifestFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {OperationCollectionResponse}
 */
export declare function createOperationCollectionResponseFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {Operation}
 */
export declare function createOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {RunningOperation}
 */
export declare function createRunningOperationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UnbilledReconciliation}
 */
export declare function createUnbilledReconciliationFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * Creates a new instance of the appropriate class based on discriminator value
 * @param parseNode The parse node to use to read the discriminator value and create the object
 * @returns {UnbilledUsage}
 */
export declare function createUnbilledUsageFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoAzureUsage(azureUsage?: Partial<AzureUsage> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBilledReconciliation(billedReconciliation?: Partial<BilledReconciliation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBilledUsage(billedUsage?: Partial<BilledUsage> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBilling(billing?: Partial<Billing> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBillingReconciliation(billingReconciliation?: Partial<BillingReconciliation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoBlob(blob?: Partial<Blob> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoExportSuccessOperation(exportSuccessOperation?: Partial<ExportSuccessOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoFailedOperation(failedOperation?: Partial<FailedOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoManifest(manifest?: Partial<Manifest> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoManifestCollectionResponse(manifestCollectionResponse?: Partial<ManifestCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoOperation(operation?: Partial<Operation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoOperationCollectionResponse(operationCollectionResponse?: Partial<OperationCollectionResponse> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoRunningOperation(runningOperation?: Partial<RunningOperation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUnbilledReconciliation(unbilledReconciliation?: Partial<UnbilledReconciliation> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUnbilledUsage(unbilledUsage?: Partial<UnbilledUsage> | undefined): Record<string, (node: ParseNode) => void>;
export interface ExportSuccessOperation extends Operation, Parsable {
    /**
     * The resourceLocation property
     */
    resourceLocation?: Manifest | null;
}
export interface FailedOperation extends Operation, Parsable {
    /**
     * The error property
     */
    errorEscaped?: PublicError | null;
}
export interface Manifest extends Entity, Parsable {
    /**
     * The total file count for this partner tenant ID.
     */
    blobCount?: number | null;
    /**
     * A collection of blob objects that contain details of all the files for the partner tenant ID.
     */
    blobs?: Blob[] | null;
    /**
     * The date and time when a manifest resource was created. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: Date | null;
    /**
     * The billing data file format. The possible value is: compressedJSONLines. Each blob is a compressed file and data in the file is in JSON lines format. Decompress the file to access the data.
     */
    dataFormat?: string | null;
    /**
     * Version of data represented by the manifest. Any change in eTag indicates a new data version.
     */
    eTag?: string | null;
    /**
     * Indicates the division of data. If a given partition has more than the supported number, the data is split into multiple files, each file representing a specific partitionValue. By default, the data in the file is partitioned by the number of line items.
     */
    partitionType?: string | null;
    /**
     * The Microsoft Entra tenant ID of the partner.
     */
    partnerTenantId?: string | null;
    /**
     * The root directory that contains all the files.
     */
    rootDirectory?: string | null;
    /**
     * The SAS token for accessing the directory or an individual file in the directory.
     */
    sasToken?: string | null;
    /**
     * The version of the manifest schema.
     */
    schemaVersion?: string | null;
}
export interface ManifestCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Manifest[] | null;
}
export interface Operation extends Entity, Parsable {
    /**
     * The start time of the operation. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    createdDateTime?: Date | null;
    /**
     * The time of the last action of the operation. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.
     */
    lastActionDateTime?: Date | null;
    /**
     * The status of the operation. Possible values are: notStarted, running, completed, failed, unknownFutureValue.
     */
    status?: LongRunningOperationStatus | null;
}
export interface OperationCollectionResponse extends BaseCollectionPaginationCountResponse, Parsable {
    /**
     * The value property
     */
    value?: Operation[] | null;
}
export interface RunningOperation extends Operation, Parsable {
}
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeAzureUsage(writer: SerializationWriter, azureUsage?: Partial<AzureUsage> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBilledReconciliation(writer: SerializationWriter, billedReconciliation?: Partial<BilledReconciliation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBilledUsage(writer: SerializationWriter, billedUsage?: Partial<BilledUsage> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBilling(writer: SerializationWriter, billing?: Partial<Billing> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBillingReconciliation(writer: SerializationWriter, billingReconciliation?: Partial<BillingReconciliation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeBlob(writer: SerializationWriter, blob?: Partial<Blob> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeExportSuccessOperation(writer: SerializationWriter, exportSuccessOperation?: Partial<ExportSuccessOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeFailedOperation(writer: SerializationWriter, failedOperation?: Partial<FailedOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeManifest(writer: SerializationWriter, manifest?: Partial<Manifest> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeManifestCollectionResponse(writer: SerializationWriter, manifestCollectionResponse?: Partial<ManifestCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeOperation(writer: SerializationWriter, operation?: Partial<Operation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeOperationCollectionResponse(writer: SerializationWriter, operationCollectionResponse?: Partial<OperationCollectionResponse> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeRunningOperation(writer: SerializationWriter, runningOperation?: Partial<RunningOperation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUnbilledReconciliation(writer: SerializationWriter, unbilledReconciliation?: Partial<UnbilledReconciliation> | undefined | null): void;
/**
 * Serializes information the current object
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUnbilledUsage(writer: SerializationWriter, unbilledUsage?: Partial<UnbilledUsage> | undefined | null): void;
export interface UnbilledReconciliation extends Entity, Parsable {
}
export interface UnbilledUsage extends Entity, Parsable {
}
export declare const AttributeSetObject: {
    readonly Full: "full";
    readonly Basic: "basic";
    readonly UnknownFutureValue: "unknownFutureValue";
};
export declare const BillingPeriodObject: {
    readonly Current: "current";
    readonly Last: "last";
    readonly UnknownFutureValue: "unknownFutureValue";
};
//# sourceMappingURL=index.d.ts.map