export interface StartServicePeriodPayload {
    /** The identifier of the program management account. */
    programManagementAccountIdentifier: string;
    /** A note providing additional information about the service period. */
    note?: string;
    /** The type of service period being started. */
    servicePeriodType: 'MINIMUM_NOTICE_PERIOD' | 'FIXED_COMMITMENT_PERIOD';
    /** The minimum number of days notice required for changes. */
    minimumNoticeDays?: string;
    /** The end date of the service period. */
    endDate?: string;
}
export interface RevokeServicePeriodPayload {
    /** The identifier of the program management account. */
    programManagementAccountIdentifier: string;
    /** A note explaining the reason for revoking the service period. */
    note?: string;
}
export interface Tag {
    /** The key of the tag. */
    key: string;
    /** The value of the tag. */
    value: string;
}
export interface ResoldBusiness {
    /** The coverage level for resold business support. */
    coverage: 'ENTIRE_ORGANIZATION' | 'MANAGEMENT_ACCOUNT_ONLY';
}
export interface ResoldEnterprise {
    /** The coverage level for resold enterprise support. */
    coverage: 'ENTIRE_ORGANIZATION' | 'MANAGEMENT_ACCOUNT_ONLY';
    /** The location of the Technical Account Manager (TAM). */
    tamLocation: string;
    /** The AWS account ID to charge for the support plan. */
    chargeAccountId?: string;
}
export interface PartnerLedSupport {
    /** The coverage level for partner-led support. */
    coverage: 'ENTIRE_ORGANIZATION' | 'MANAGEMENT_ACCOUNT_ONLY';
    /** The provider of the partner-led support. */
    provider?: 'DISTRIBUTOR' | 'DISTRIBUTION_SELLER';
    /** The location of the Technical Account Manager (TAM). */
    tamLocation: string;
}
export interface StartServicePeriodTypeFilters {
    /** Filter by service period types. */
    servicePeriodTypes?: any[];
}
export interface RevokeServicePeriodTypeFilters {
    /** Filter by service period types. */
    servicePeriodTypes?: any[];
}
export interface ProgramManagementAccountTypeFilters {
    /** Filter by program types. */
    programs?: any[];
}
export interface StartServicePeriodTypeSort {
    /** The sort order (ascending or descending). */
    sortOrder: 'Ascending' | 'Descending';
    /** The field to sort by. */
    sortBy: 'UpdatedAt';
}
export interface RevokeServicePeriodTypeSort {
    /** The sort order (ascending or descending). */
    sortOrder: 'Ascending' | 'Descending';
    /** The field to sort by. */
    sortBy: 'UpdatedAt';
}
export interface ProgramManagementAccountTypeSort {
    /** The sort order (ascending or descending). */
    sortOrder: 'Ascending' | 'Descending';
    /** The field to sort by. */
    sortBy: 'UpdatedAt';
}
export interface ListProgramManagementAccountsSortBase {
    /** The sort order (ascending or descending). */
    sortOrder: 'Ascending' | 'Descending';
    /** The field to sort by. */
    sortBy: 'UpdatedAt';
}
export interface ListRelationshipsSortBase {
    /** The sort order (ascending or descending). */
    sortOrder: 'Ascending' | 'Descending';
    /** The field to sort by. */
    sortBy: 'UpdatedAt';
}
export interface AcceptChannelHandshakeInput {
    /** The catalog identifier for the handshake request. */
    catalog: string;
    /** The unique identifier of the channel handshake to accept. */
    identifier: string;
}
export interface CancelChannelHandshakeInput {
    /** The catalog identifier for the handshake request. */
    catalog: string;
    /** The unique identifier of the channel handshake to cancel. */
    identifier: string;
}
export interface CreateChannelHandshakeInput {
    /** The identifier of the resource associated with this handshake. */
    associatedResourceIdentifier: string;
    /** The catalog identifier for the handshake request. */
    catalog: string;
    /** The type of handshake to create (e.g., start service period, revoke service period). */
    handshakeType: 'START_SERVICE_PERIOD' | 'REVOKE_SERVICE_PERIOD' | 'PROGRAM_MANAGEMENT_ACCOUNT';
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The payload containing specific details for the handshake type. */
    payload?: {
        startServicePeriodPayload?: StartServicePeriodPayload;
    } | {
        revokeServicePeriodPayload?: RevokeServicePeriodPayload;
    };
    /** Key-value pairs to associate with the channel handshake. */
    tags?: Tag[];
}
export interface CreateProgramManagementAccountInput {
    /** The AWS account ID to associate with the program management account. */
    accountId: string;
    /** The catalog identifier for the program management account. */
    catalog: string;
    /** A human-readable name for the program management account. */
    displayName: string;
    /** The program type for the management account. */
    program: 'SOLUTION_PROVIDER' | 'DISTRIBUTION' | 'DISTRIBUTION_SELLER';
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** Key-value pairs to associate with the program management account. */
    tags?: Tag[];
}
export interface CreateRelationshipInput {
    /** The AWS account ID to associate in this relationship. */
    associatedAccountId: string;
    /** The type of association for the relationship (e.g., reseller, distributor). */
    associationType: 'DOWNSTREAM_SELLER' | 'END_CUSTOMER' | 'INTERNAL';
    /** The catalog identifier for the relationship. */
    catalog: string;
    /** A human-readable name for the relationship. */
    displayName: string;
    /** The identifier of the program management account for this relationship. */
    programManagementAccountIdentifier: string;
    /** The business sector for the relationship. */
    sector: 'COMMERCIAL' | 'GOVERNMENT' | 'GOVERNMENT_EXCEPTION';
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The support plan requested for this relationship. */
    requestedSupportPlan?: {
        resoldBusiness?: ResoldBusiness;
    } | {
        resoldEnterprise?: ResoldEnterprise;
    } | {
        partnerLedSupport?: PartnerLedSupport;
    };
    /** The resale account model for the relationship. */
    resaleAccountModel?: 'DISTRIBUTOR' | 'END_CUSTOMER' | 'SOLUTION_PROVIDER';
    /** Key-value pairs to associate with the relationship. */
    tags?: Tag[];
}
export interface DeleteProgramManagementAccountInput {
    /** The catalog identifier for the program management account. */
    catalog: string;
    /** The unique identifier of the program management account to delete. */
    identifier: string;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteRelationshipInput {
    /** The catalog identifier for the relationship. */
    catalog: string;
    /** The unique identifier of the relationship to delete. */
    identifier: string;
    /** The identifier of the program management account associated with the relationship. */
    programManagementAccountIdentifier: string;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface GetRelationshipInput {
    /** The catalog identifier for the relationship. */
    catalog: string;
    /** The unique identifier of the relationship to retrieve. */
    identifier: string;
    /** The identifier of the program management account associated with the relationship. */
    programManagementAccountIdentifier: string;
}
export interface ListChannelHandshakesInput {
    /** The catalog identifier to filter handshakes. */
    catalog: string;
    /** Filter results by handshake type. */
    handshakeType: 'START_SERVICE_PERIOD' | 'REVOKE_SERVICE_PERIOD' | 'PROGRAM_MANAGEMENT_ACCOUNT';
    /** Filter by participant type (sender or receiver). */
    participantType: 'SENDER' | 'RECEIVER';
    /** Filter by associated resource identifiers. */
    associatedResourceIdentifiers?: string[];
    /** Type-specific filters for handshakes. */
    handshakeTypeFilters?: {
        startServicePeriodTypeFilters?: StartServicePeriodTypeFilters;
    } | {
        revokeServicePeriodTypeFilters?: RevokeServicePeriodTypeFilters;
    } | {
        programManagementAccountTypeFilters?: ProgramManagementAccountTypeFilters;
    };
    /** Type-specific sorting options for handshakes. */
    handshakeTypeSort?: {
        startServicePeriodTypeSort?: StartServicePeriodTypeSort;
    } | {
        revokeServicePeriodTypeSort?: RevokeServicePeriodTypeSort;
    } | {
        programManagementAccountTypeSort?: ProgramManagementAccountTypeSort;
    };
    /** The maximum number of results to return in a single call. */
    maxResults?: number;
    /** Token for retrieving the next page of results. */
    nextToken?: string;
    /** Filter results by handshake status. */
    statuses?: 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'CANCELED' | 'EXPIRED'[];
}
export interface ListProgramManagementAccountsInput {
    /** The catalog identifier to filter accounts. */
    catalog: string;
    /** Filter by AWS account IDs. */
    accountIds?: string[];
    /** Filter by display names. */
    displayNames?: string[];
    /** The maximum number of results to return in a single call. */
    maxResults?: number;
    /** Token for retrieving the next page of results. */
    nextToken?: string;
    /** Filter by program types. */
    programs?: 'SOLUTION_PROVIDER' | 'DISTRIBUTION' | 'DISTRIBUTION_SELLER'[];
    /** Sorting options for the results. */
    sort?: ListProgramManagementAccountsSortBase;
    /** Filter by program management account statuses. */
    statuses?: 'PENDING' | 'ACTIVE' | 'INACTIVE'[];
}
export interface ListRelationshipsInput {
    /** The catalog identifier to filter relationships. */
    catalog: string;
    /** Filter by associated AWS account IDs. */
    associatedAccountIds?: string[];
    /** Filter by association types. */
    associationTypes?: 'DOWNSTREAM_SELLER' | 'END_CUSTOMER' | 'INTERNAL'[];
    /** Filter by display names. */
    displayNames?: string[];
    /** The maximum number of results to return in a single call. */
    maxResults?: number;
    /** Token for retrieving the next page of results. */
    nextToken?: string;
    /** Filter by program management account identifiers. */
    programManagementAccountIdentifiers?: string[];
    /** Sorting options for the results. */
    sort?: ListRelationshipsSortBase;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to list tags for. */
    resourceArn: string;
}
export interface RejectChannelHandshakeInput {
    /** The catalog identifier for the handshake request. */
    catalog: string;
    /** The unique identifier of the channel handshake to reject. */
    identifier: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to tag. */
    resourceArn: string;
    /** Key-value pairs to associate with the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to remove tags from. */
    resourceArn: string;
    /** The keys of the tags to remove from the resource. */
    tagKeys: string[];
}
export interface UpdateProgramManagementAccountInput {
    /** The catalog identifier for the program management account. */
    catalog: string;
    /** The unique identifier of the program management account to update. */
    identifier: string;
    /** The new display name for the program management account. */
    displayName?: string;
    /** The current revision number of the program management account. */
    revision?: string;
}
export interface UpdateRelationshipInput {
    /** The catalog identifier for the relationship. */
    catalog: string;
    /** The unique identifier of the relationship to update. */
    identifier: string;
    /** The identifier of the program management account associated with the relationship. */
    programManagementAccountIdentifier: string;
    /** The new display name for the relationship. */
    displayName?: string;
    /** The updated support plan for the relationship. */
    requestedSupportPlan?: {
        resoldBusiness?: ResoldBusiness;
    } | {
        resoldEnterprise?: ResoldEnterprise;
    } | {
        partnerLedSupport?: PartnerLedSupport;
    };
    /** The current revision number of the relationship. */
    revision?: string;
}
/** PartnerCentral Channel service binding for Step Functions SDK integrations. */
export declare class PartnerCentralChannel {
    constructor();
    acceptChannelHandshake<T>(params: AcceptChannelHandshakeInput): Promise<T>;
    cancelChannelHandshake<T>(params: CancelChannelHandshakeInput): Promise<T>;
    createChannelHandshake<T>(params: CreateChannelHandshakeInput): Promise<T>;
    createProgramManagementAccount<T>(params: CreateProgramManagementAccountInput): Promise<T>;
    createRelationship<T>(params: CreateRelationshipInput): Promise<T>;
    deleteProgramManagementAccount<T>(params: DeleteProgramManagementAccountInput): Promise<T>;
    deleteRelationship<T>(params: DeleteRelationshipInput): Promise<T>;
    getRelationship<T>(params: GetRelationshipInput): Promise<T>;
    listChannelHandshakes<T>(params: ListChannelHandshakesInput): Promise<T>;
    listProgramManagementAccounts<T>(params: ListProgramManagementAccountsInput): Promise<T>;
    listRelationships<T>(params: ListRelationshipsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    rejectChannelHandshake<T>(params: RejectChannelHandshakeInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateProgramManagementAccount<T>(params: UpdateProgramManagementAccountInput): Promise<T>;
    updateRelationship<T>(params: UpdateRelationshipInput): Promise<T>;
}
//# sourceMappingURL=PartnerCentralChannel.d.ts.map