import { type Entity } from '../index.js';
import { type AdditionalDataHolder, type BackedModel, type Guid, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions';
export type AssigneeTypes = (typeof AssigneeTypesObject)[keyof typeof AssigneeTypesObject];
/**
 * 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 {GroupCloudLicensing}
 */
export declare function createGroupCloudLicensingFromDiscriminatorValue(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 {Service}
 */
export declare function createServiceFromDiscriminatorValue(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 {UsageRight}
 */
export declare function createUsageRightFromDiscriminatorValue(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 {UserCloudLicensing}
 */
export declare function createUserCloudLicensingFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record<string, (node: ParseNode) => void>);
/**
 * The deserialization information for the current model
 * @param GroupCloudLicensing The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoGroupCloudLicensing(groupCloudLicensing?: Partial<GroupCloudLicensing> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param Service The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoService(service?: Partial<Service> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param UsageRight The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUsageRight(usageRight?: Partial<UsageRight> | undefined): Record<string, (node: ParseNode) => void>;
/**
 * The deserialization information for the current model
 * @param UserCloudLicensing The instance to deserialize into.
 * @returns {Record<string, (node: ParseNode) => void>}
 */
export declare function deserializeIntoUserCloudLicensing(userCloudLicensing?: Partial<UserCloudLicensing> | undefined): Record<string, (node: ParseNode) => void>;
export interface GroupCloudLicensing extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The usageRights property
     */
    usageRights?: UsageRight[] | null;
}
/**
 * Serializes information the current object
 * @param GroupCloudLicensing The instance to serialize from.
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeGroupCloudLicensing(writer: SerializationWriter, groupCloudLicensing?: Partial<GroupCloudLicensing> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param Service The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeService(writer: SerializationWriter, service?: Partial<Service> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UsageRight The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUsageRight(writer: SerializationWriter, usageRight?: Partial<UsageRight> | undefined | null, isSerializingDerivedType?: boolean): void;
/**
 * Serializes information the current object
 * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type.
 * @param UserCloudLicensing The instance to serialize from.
 * @param writer Serialization writer to use to serialize this model
 */
export declare function serializeUserCloudLicensing(writer: SerializationWriter, userCloudLicensing?: Partial<UserCloudLicensing> | undefined | null, isSerializingDerivedType?: boolean): void;
export interface Service extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * The assignableTo property
     */
    assignableTo?: AssigneeTypes[] | null;
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The unique identifier of the service plan that is equal to the servicePlanId property on the related servicePlanInfo objects.
     */
    planId?: Guid | null;
    /**
     * The name of the service plan that is equal to the servicePlanName property on the related servicePlanInfo objects.
     */
    planName?: string | null;
}
export interface UsageRight extends Entity, Parsable {
    /**
     * Information about the services associated with the usageRight. Not nullable. Read-only. Supports $filter on the planId property.
     */
    services?: Service[] | null;
    /**
     * Unique identifier (GUID) for the service SKU that is equal to the skuId property on the related subscribedSku object. Read-only. Supports $filter.
     */
    skuId?: Guid | null;
    /**
     * Unique SKU display name that is equal to the skuPartNumber on the related subscribedSku object; for example, AAD_Premium. Read-only.
     */
    skuPartNumber?: string | null;
}
export interface UserCloudLicensing extends AdditionalDataHolder, BackedModel, Parsable {
    /**
     * Stores model information.
     */
    backingStoreEnabled?: boolean | null;
    /**
     * The OdataType property
     */
    odataType?: string | null;
    /**
     * The usageRights property
     */
    usageRights?: UsageRight[] | null;
}
export declare const AssigneeTypesObject: {
    readonly None: "none";
    readonly User: "user";
    readonly Group: "group";
    readonly Device: "device";
    readonly UnknownFutureValue: "unknownFutureValue";
};
//# sourceMappingURL=index.d.ts.map