export interface Amendment {
    /** The JSON path or field identifier specifying which field in the benefit application to modify. */
    FieldPath: string;
    /** The new value to set for the specified field in the benefit application. */
    NewValue: string;
}
export interface Tag {
    /** The tag key, which acts as a category or label for the tag. */
    Key: string;
    /** The tag value, which provides additional information or context for the tag key. */
    Value: string;
}
export interface Contact {
    /** The email address of the contact person. */
    Email?: string;
    /** The first name of the contact person. */
    FirstName?: string;
    /** The last name of the contact person. */
    LastName?: string;
    /** The business title or role of the contact person within the organization. */
    BusinessTitle?: string;
    /** The phone number of the contact person. */
    Phone?: string;
}
export interface FileInput {
    /** The URI or location where the file should be stored or has been uploaded. */
    FileURI: string;
    /** The business purpose or use case that this file supports in the benefit application. */
    BusinessUseCase?: string;
}
export interface AssociatedResource {
    /** The type of AWS resource (e.g., EC2 instance, S3 bucket, Lambda function). */
    ResourceType?: 'OPPORTUNITY' | 'BENEFIT_ALLOCATION';
    /** The unique identifier of the AWS resource within its service. */
    ResourceIdentifier?: string;
    /** The Amazon Resource Name (ARN) that uniquely identifies the AWS resource. */
    ResourceArn?: string;
}
export interface AmendBenefitApplicationInput {
    /** A descriptive reason explaining why the benefit application is being amended. */
    AmendmentReason: string;
    /** A list of specific field amendments to apply to the benefit application. */
    Amendments: Amendment[];
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** A unique, case-sensitive identifier to ensure idempotent processing of the amendment request. */
    ClientToken: string;
    /** The unique identifier of the benefit application to be amended. */
    Identifier: string;
    /** The current revision number of the benefit application to ensure optimistic concurrency control. */
    Revision: string;
}
export interface AssociateBenefitApplicationResourceInput {
    /** The unique identifier of the benefit application to associate the resource with. */
    BenefitApplicationIdentifier: string;
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** The Amazon Resource Name (ARN) of the AWS resource to associate with the benefit application. */
    ResourceArn: string;
}
export interface CancelBenefitApplicationInput {
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** A unique, case-sensitive identifier to ensure idempotent processing of the cancellation request. */
    ClientToken: string;
    /** The unique identifier of the benefit application to cancel. */
    Identifier: string;
    /** A descriptive reason explaining why the benefit application is being cancelled. */
    Reason?: string;
}
export interface CreateBenefitApplicationInput {
    /** The unique identifier of the benefit being requested in this application. */
    BenefitIdentifier: string;
    /** The catalog identifier that specifies which benefit catalog to create the application in. */
    Catalog: string;
    /** A unique, case-sensitive identifier to ensure idempotent processing of the creation request. */
    ClientToken: string;
    /** AWS resources that are associated with this benefit application. */
    AssociatedResources?: string[];
    /** Detailed information and requirements specific to the benefit being requested. */
    BenefitApplicationDetails?: any;
    /** A detailed description of the benefit application and its intended use. */
    Description?: string;
    /** Supporting documents and files attached to the benefit application. */
    FileDetails?: FileInput[];
    /** The types of fulfillment requested for this benefit application (e.g., credits, access, disbursement). */
    FulfillmentTypes?: 'CREDITS' | 'CASH' | 'ACCESS'[];
    /** A human-readable name for the benefit application. */
    Name?: string;
    /** Contact information for partner representatives responsible for this benefit application. */
    PartnerContacts?: Contact[];
    /** Key-value pairs to categorize and organize the benefit application. */
    Tags?: Tag[];
}
export interface DisassociateBenefitApplicationResourceInput {
    /** The unique identifier of the benefit application to disassociate the resource from. */
    BenefitApplicationIdentifier: string;
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** The Amazon Resource Name (ARN) of the AWS resource to disassociate from the benefit application. */
    ResourceArn: string;
}
export interface GetBenefitInput {
    /** The catalog identifier that specifies which benefit catalog to query. */
    Catalog: string;
    /** The unique identifier of the benefit to retrieve. */
    Identifier: string;
}
export interface GetBenefitAllocationInput {
    /** The catalog identifier that specifies which benefit catalog to query. */
    Catalog: string;
    /** The unique identifier of the benefit allocation to retrieve. */
    Identifier: string;
}
export interface GetBenefitApplicationInput {
    /** The catalog identifier that specifies which benefit catalog to query. */
    Catalog: string;
    /** The unique identifier of the benefit application to retrieve. */
    Identifier: string;
}
export interface ListBenefitAllocationsInput {
    /** The catalog identifier to filter benefit allocations by catalog. */
    Catalog: string;
    /** Filter benefit allocations by specific benefit application identifiers. */
    BenefitApplicationIdentifiers?: string[];
    /** Filter benefit allocations by specific benefit identifiers. */
    BenefitIdentifiers?: string[];
    /** Filter benefit allocations by specific fulfillment types. */
    FulfillmentTypes?: 'CREDITS' | 'CASH' | 'ACCESS'[];
    /** The maximum number of benefit allocations to return in a single response. */
    MaxResults?: number;
    /** A pagination token to retrieve the next set of results from a previous request. */
    NextToken?: string;
    /** Filter benefit allocations by their current status. */
    Status?: 'ACTIVE' | 'INACTIVE' | 'FULFILLED'[];
}
export interface ListBenefitApplicationsInput {
    /** The catalog identifier to filter benefit applications by catalog. */
    Catalog: string;
    /** Filter benefit applications by specific AWS resource ARNs. */
    AssociatedResourceArns?: string[];
    /** Filter benefit applications by associated AWS resources. */
    AssociatedResources?: AssociatedResource[];
    /** Filter benefit applications by specific benefit identifiers. */
    BenefitIdentifiers?: string[];
    /** Filter benefit applications by specific fulfillment types. */
    FulfillmentTypes?: 'CREDITS' | 'CASH' | 'ACCESS'[];
    /** The maximum number of benefit applications to return in a single response. */
    MaxResults?: number;
    /** A pagination token to retrieve the next set of results from a previous request. */
    NextToken?: string;
    /** Filter benefit applications by specific AWS partner programs. */
    Programs?: string[];
    /** Filter benefit applications by their current processing stage. */
    Stages?: string[];
    /** Filter benefit applications by their current processing status. */
    Status?: 'PENDING_SUBMISSION' | 'IN_REVIEW' | 'ACTION_REQUIRED' | 'APPROVED' | 'REJECTED' | 'CANCELED'[];
}
export interface ListBenefitsInput {
    /** The catalog identifier to filter benefits by catalog. */
    Catalog: string;
    /** Filter benefits by specific fulfillment types. */
    FulfillmentTypes?: 'CREDITS' | 'CASH' | 'ACCESS'[];
    /** The maximum number of benefits to return in a single response. */
    MaxResults?: number;
    /** A pagination token to retrieve the next set of results from a previous request. */
    NextToken?: string;
    /** Filter benefits by specific AWS partner programs. */
    Programs?: string[];
    /** Filter benefits by their current status. */
    Status?: 'ACTIVE' | 'INACTIVE'[];
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to list tags for. */
    resourceArn: string;
}
export interface RecallBenefitApplicationInput {
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** The unique identifier of the benefit application to recall. */
    Identifier: string;
    /** A descriptive reason explaining why the benefit application is being recalled. */
    Reason: string;
    /** A unique, case-sensitive identifier to ensure idempotent processing of the recall request. */
    ClientToken?: string;
}
export interface SubmitBenefitApplicationInput {
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** The unique identifier of the benefit application to submit. */
    Identifier: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to add tags to. */
    resourceArn: string;
    /** A list of key-value pairs to add as tags to the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to remove tags from. */
    resourceArn: string;
    /** A list of tag keys to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateBenefitApplicationInput {
    /** The catalog identifier that specifies which benefit catalog the application belongs to. */
    Catalog: string;
    /** A unique, case-sensitive identifier to ensure idempotent processing of the update request. */
    ClientToken: string;
    /** The unique identifier of the benefit application to update. */
    Identifier: string;
    /** The current revision number of the benefit application to ensure optimistic concurrency control. */
    Revision: string;
    /** Updated detailed information and requirements specific to the benefit being requested. */
    BenefitApplicationDetails?: any;
    /** The updated detailed description of the benefit application. */
    Description?: string;
    /** Updated supporting documents and files attached to the benefit application. */
    FileDetails?: FileInput[];
    /** The updated human-readable name for the benefit application. */
    Name?: string;
    /** Updated contact information for partner representatives responsible for this benefit application. */
    PartnerContacts?: Contact[];
}
/** PartnerCentral Benefits service binding for Step Functions SDK integrations. */
export declare class PartnerCentralBenefits {
    constructor();
    amendBenefitApplication<T>(params: AmendBenefitApplicationInput): Promise<T>;
    associateBenefitApplicationResource<T>(params: AssociateBenefitApplicationResourceInput): Promise<T>;
    cancelBenefitApplication<T>(params: CancelBenefitApplicationInput): Promise<T>;
    createBenefitApplication<T>(params: CreateBenefitApplicationInput): Promise<T>;
    disassociateBenefitApplicationResource<T>(params: DisassociateBenefitApplicationResourceInput): Promise<T>;
    getBenefit<T>(params: GetBenefitInput): Promise<T>;
    getBenefitAllocation<T>(params: GetBenefitAllocationInput): Promise<T>;
    getBenefitApplication<T>(params: GetBenefitApplicationInput): Promise<T>;
    listBenefitAllocations<T>(params: ListBenefitAllocationsInput): Promise<T>;
    listBenefitApplications<T>(params: ListBenefitApplicationsInput): Promise<T>;
    listBenefits<T>(params: ListBenefitsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    recallBenefitApplication<T>(params: RecallBenefitApplicationInput): Promise<T>;
    submitBenefitApplication<T>(params: SubmitBenefitApplicationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateBenefitApplication<T>(params: UpdateBenefitApplicationInput): Promise<T>;
}
//# sourceMappingURL=PartnerCentralBenefits.d.ts.map