import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import type { CommonErrors } from "../errors.ts";
import type { Region } from "../region.ts";
export type ProductCode = string;
export type FilterValue = string;
export type NonEmptyString = string;
export type PageSizeInteger = number;
export type ErrorMessage = string;
export type GetEntitlementFilterName = "CUSTOMER_IDENTIFIER" | "DIMENSION" | "CUSTOMER_AWS_ACCOUNT_ID" | "LICENSE_ARN" | (string & {});
export declare const GetEntitlementFilterName: S.String;
export type FilterValueList = string[];
export declare const FilterValueList: S.$Array<S.String>;
export type GetEntitlementFilters = {
    [key in GetEntitlementFilterName]?: string[];
};
export declare const GetEntitlementFilters: S.$Record<S.String, S.optional<S.$Array<S.String>>>;
export interface GetEntitlementsRequest {
    ProductCode: string;
    Filter?: {
        [key: string]: string[] | undefined;
    };
    NextToken?: string;
    MaxResults?: number;
}
export declare const GetEntitlementsRequest: S.Schema<GetEntitlementsRequest>;
export interface EntitlementValue {
    IntegerValue?: number;
    DoubleValue?: number;
    BooleanValue?: boolean;
    StringValue?: string;
}
export declare const EntitlementValue: S.Schema<EntitlementValue>;
export interface Entitlement {
    ProductCode?: string;
    Dimension?: string;
    CustomerIdentifier?: string;
    CustomerAWSAccountId?: string;
    Value?: EntitlementValue;
    ExpirationDate?: Date;
    LicenseArn?: string;
}
export declare const Entitlement: S.Schema<Entitlement>;
export type EntitlementList = Entitlement[];
export declare const EntitlementList: S.$Array<S.Schema<Entitlement>>;
export interface GetEntitlementsResult {
    Entitlements?: Entitlement[];
    NextToken?: string;
}
export declare const GetEntitlementsResult: S.Schema<GetEntitlementsResult>;
declare const InternalServiceErrorException_base: S.Class<InternalServiceErrorException, S.TaggedStruct<"InternalServiceErrorException", {
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError>;
export declare class InternalServiceErrorException extends InternalServiceErrorException_base {
}
declare const InvalidParameterException_base: S.Class<InvalidParameterException, S.TaggedStruct<"InvalidParameterException", {
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError>;
export declare class InvalidParameterException extends InvalidParameterException_base {
}
declare const ThrottlingException_base: S.Class<ThrottlingException, S.TaggedStruct<"ThrottlingException", {
    readonly message: S.optional<S.String>;
}>, import("effect/Cause").YieldableError>;
export declare class ThrottlingException extends ThrottlingException_base {
}
export type GetEntitlementsError = InternalServiceErrorException | InvalidParameterException | ThrottlingException | CommonErrors;
/**
 * GetEntitlements retrieves entitlement values for a given product. The results can be
 * filtered based on customer identifier, AWS account ID, license ARN, or product dimensions.
 */
export declare const getEntitlements: API.OperationMethod<GetEntitlementsRequest, GetEntitlementsResult, GetEntitlementsError, Credentials | Region | HttpClient.HttpClient> & {
    pages: (input: GetEntitlementsRequest) => stream.Stream<GetEntitlementsResult, GetEntitlementsError, Credentials | Region | HttpClient.HttpClient>;
    items: (input: GetEntitlementsRequest) => stream.Stream<unknown, GetEntitlementsError, Credentials | Region | HttpClient.HttpClient>;
};
export {};
//# sourceMappingURL=marketplace-entitlement-service.d.ts.map