export interface MemberFrameworkConfiguration {
    /** Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric. */
    Fabric?: any;
}
export interface MemberLogPublishingConfiguration {
    /** Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework. */
    Fabric?: any;
}
export interface MemberConfiguration {
    /** The name of the member. */
    Name: string;
    /** An optional description of the member. */
    Description?: string;
    /** Configuration properties of the blockchain framework relevant to the member. */
    FrameworkConfiguration: MemberFrameworkConfiguration;
    /** Configuration properties for logging events associated with a member of a Managed Blockchain network. */
    LogPublishingConfiguration?: MemberLogPublishingConfiguration;
    /** Tags assigned to the member. Tags consist of a key and optional value. When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 */
    Tags?: Record<string, string>;
    /** The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member create */
    KmsKeyArn?: string;
}
export interface NetworkFabricConfiguration {
    /** The edition of Amazon Managed Blockchain that the network uses. For more information, see Amazon Managed Blockchain Pricing. */
    Edition: 'STARTER' | 'STANDARD';
}
export interface NetworkFrameworkConfiguration {
    /** Hyperledger Fabric configuration properties for a Managed Blockchain network that uses Hyperledger Fabric. */
    Fabric?: NetworkFabricConfiguration;
}
export interface ApprovalThresholdPolicy {
    /** The percentage of votes among all members that must be YES for a proposal to be approved. For example, a ThresholdPercentage value of 50 indicates 50%. The ThresholdComparator determines the precise c */
    ThresholdPercentage?: number;
    /** The duration from the time that a proposal is created until it expires. If members cast neither the required number of YES votes to approve the proposal nor the number of NO votes required to reject i */
    ProposalDurationInHours?: number;
    /** Determines whether the vote percentage must be greater than the ThresholdPercentage or must be greater than or equal to the ThresholdPercentage to be approved. */
    ThresholdComparator?: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUAL_TO';
}
export interface VotingPolicy {
    /** Defines the rules for the network for voting on proposals, such as the percentage of YES votes required for the proposal to be approved and the duration of the proposal. The policy applies to all prop */
    ApprovalThresholdPolicy?: ApprovalThresholdPolicy;
}
export interface NodeLogPublishingConfiguration {
    /** Configuration properties for logging events associated with a node that is owned by a member of a Managed Blockchain network using the Hyperledger Fabric framework. */
    Fabric?: any;
}
export interface NodeConfiguration {
    /** The Amazon Managed Blockchain instance type for the node. */
    InstanceType: string;
    /** The Availability Zone in which the node exists. Required for Ethereum nodes. */
    AvailabilityZone?: string;
    /** Configuration properties for logging events associated with a peer node on a Hyperledger Fabric network on Managed Blockchain. */
    LogPublishingConfiguration?: NodeLogPublishingConfiguration;
    /** The state database that the node uses. Values are LevelDB or CouchDB. When using an Amazon Managed Blockchain network with Hyperledger Fabric version 1.4 or later, the default is CouchDB. Applies only */
    StateDB?: 'LevelDB' | 'CouchDB';
}
export interface ProposalActions {
    /** The actions to perform for an APPROVED proposal to invite an Amazon Web Services account to create a member and join the network. */
    Invitations?: any[];
    /** The actions to perform for an APPROVED proposal to remove a member from the network, which deletes the member and all associated member resources from the network. */
    Removals?: any[];
}
export interface CreateAccessorInput {
    /** The type of accessor. Currently, accessor type is restricted to BILLING_TOKEN. */
    AccessorType: 'BILLING_TOKEN';
    /** This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you ma */
    ClientRequestToken: string;
    /** The blockchain network that the Accessor token is created for. Use the actual networkType value for the blockchain network that you are creating the Accessor token for. With the shut down of the Ether */
    NetworkType?: 'ETHEREUM_GOERLI' | 'ETHEREUM_MAINNET' | 'ETHEREUM_MAINNET_AND_GOERLI' | 'POLYGON_MAINNET' | 'POLYGON_MUMBAI';
    /** Tags to assign to the Accessor. Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.  */
    Tags?: Record<string, string>;
}
export interface CreateMemberInput {
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a */
    ClientRequestToken: string;
    /** The unique identifier of the invitation that is sent to the member to join the network. */
    InvitationId: string;
    /** Member configuration parameters. */
    MemberConfiguration: MemberConfiguration;
    /** The unique identifier of the network in which the member is created. */
    NetworkId: string;
}
export interface CreateNetworkInput {
    /** This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you ma */
    ClientRequestToken: string;
    /** The blockchain framework that the network uses. */
    Framework: 'HYPERLEDGER_FABRIC' | 'ETHEREUM';
    /** The version of the blockchain framework that the network uses. */
    FrameworkVersion: string;
    /** Configuration properties for the first member within the network. */
    MemberConfiguration: MemberConfiguration;
    /** The name of the network. */
    Name: string;
    /** The voting rules used by the network to determine if a proposal is approved. */
    VotingPolicy: VotingPolicy;
    /** An optional description for the network. */
    Description?: string;
    /** Configuration properties of the blockchain framework relevant to the network configuration. */
    FrameworkConfiguration?: NetworkFrameworkConfiguration;
    /** Tags to assign to the network. Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource. F */
    Tags?: Record<string, string>;
}
export interface CreateNodeInput {
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a */
    ClientRequestToken: string;
    /** The unique identifier of the network for the node. Ethereum public networks have the following NetworkIds: n-ethereum-mainnet */
    NetworkId: string;
    /** The properties of a node configuration. */
    NodeConfiguration: NodeConfiguration;
    /** The unique identifier of the member that owns this node. Applies only to Hyperledger Fabric. */
    MemberId?: string;
    /** Tags to assign to the node. Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource. For  */
    Tags?: Record<string, string>;
}
export interface CreateProposalInput {
    /** The type of actions proposed, such as inviting a member or removing a member. The types of Actions in a proposal are mutually exclusive. For example, a proposal with Invitations actions cannot also co */
    Actions: ProposalActions;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a */
    ClientRequestToken: string;
    /** The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single Amazon We */
    MemberId: string;
    /** The unique identifier of the network for which the proposal is made. */
    NetworkId: string;
    /** A description for the proposal that is visible to voting members, for example, "Proposal to add Example Corp. as member." */
    Description?: string;
    /** Tags to assign to the proposal. Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.  */
    Tags?: Record<string, string>;
}
export interface DeleteAccessorInput {
    /** The unique identifier of the accessor. */
    AccessorId: string;
}
export interface DeleteMemberInput {
    /** The unique identifier of the member to remove. */
    MemberId: string;
    /** The unique identifier of the network from which the member is removed. */
    NetworkId: string;
}
export interface DeleteNodeInput {
    /** The unique identifier of the network that the node is on. Ethereum public networks have the following NetworkIds: n-ethereum-mainnet */
    NetworkId: string;
    /** The unique identifier of the node. */
    NodeId: string;
    /** The unique identifier of the member that owns this node. Applies only to Hyperledger Fabric and is required for Hyperledger Fabric. */
    MemberId?: string;
}
export interface GetAccessorInput {
    /** The unique identifier of the accessor. */
    AccessorId: string;
}
export interface GetMemberInput {
    /** The unique identifier of the member. */
    MemberId: string;
    /** The unique identifier of the network to which the member belongs. */
    NetworkId: string;
}
export interface GetNetworkInput {
    /** The unique identifier of the network to get information about. */
    NetworkId: string;
}
export interface GetNodeInput {
    /** The unique identifier of the network that the node is on. */
    NetworkId: string;
    /** The unique identifier of the node. */
    NodeId: string;
    /** The unique identifier of the member that owns the node. Applies only to Hyperledger Fabric and is required for Hyperledger Fabric. */
    MemberId?: string;
}
export interface GetProposalInput {
    /** The unique identifier of the network for which the proposal is made. */
    NetworkId: string;
    /** The unique identifier of the proposal. */
    ProposalId: string;
}
export interface ListAccessorsInput {
    /** The maximum number of accessors to list. */
    MaxResults?: number;
    /** The blockchain network that the Accessor token is created for. Use the value ETHEREUM_MAINNET_AND_GOERLI for all existing Accessors tokens that were created before the networkType property was introdu */
    NetworkType?: 'ETHEREUM_GOERLI' | 'ETHEREUM_MAINNET' | 'ETHEREUM_MAINNET_AND_GOERLI' | 'POLYGON_MAINNET' | 'POLYGON_MUMBAI';
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
}
export interface ListInvitationsInput {
    /** The maximum number of invitations to return. */
    MaxResults?: number;
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
}
export interface ListMembersInput {
    /** The unique identifier of the network for which to list members. */
    NetworkId: string;
    /** An optional Boolean value. If provided, the request is limited either to members that the current Amazon Web Services account owns (true) or that other Amazon Web Services accountsn own (false). If om */
    IsOwned?: boolean;
    /** The maximum number of members to return in the request. */
    MaxResults?: number;
    /** The optional name of the member to list. */
    Name?: string;
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
    /** An optional status specifier. If provided, only members currently in this status are listed. */
    Status?: 'CREATING' | 'AVAILABLE' | 'CREATE_FAILED' | 'UPDATING' | 'DELETING' | 'DELETED' | 'INACCESSIBLE_ENCRYPTION_KEY';
}
export interface ListNetworksInput {
    /** An optional framework specifier. If provided, only networks of this framework type are listed. */
    Framework?: 'HYPERLEDGER_FABRIC' | 'ETHEREUM';
    /** The maximum number of networks to list. */
    MaxResults?: number;
    /** The name of the network. */
    Name?: string;
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
    /** An optional status specifier. If provided, only networks currently in this status are listed. Applies only to Hyperledger Fabric. */
    Status?: 'CREATING' | 'AVAILABLE' | 'CREATE_FAILED' | 'DELETING' | 'DELETED';
}
export interface ListNodesInput {
    /** The unique identifier of the network for which to list nodes. */
    NetworkId: string;
    /** The maximum number of nodes to list. */
    MaxResults?: number;
    /** The unique identifier of the member who owns the nodes to list. Applies only to Hyperledger Fabric and is required for Hyperledger Fabric. */
    MemberId?: string;
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
    /** An optional status specifier. If provided, only nodes currently in this status are listed. */
    Status?: 'CREATING' | 'AVAILABLE' | 'UNHEALTHY' | 'CREATE_FAILED' | 'UPDATING' | 'DELETING' | 'DELETED' | 'FAILED' | 'INACCESSIBLE_ENCRYPTION_KEY';
}
export interface ListProposalsInput {
    /** The unique identifier of the network. */
    NetworkId: string;
    /** The maximum number of proposals to return. */
    MaxResults?: number;
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
}
export interface ListProposalVotesInput {
    /** The unique identifier of the network. */
    NetworkId: string;
    /** The unique identifier of the proposal. */
    ProposalId: string;
    /** The maximum number of votes to return. */
    MaxResults?: number;
    /** The pagination token that indicates the next set of results to retrieve. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. */
    ResourceArn: string;
}
export interface RejectInvitationInput {
    /** The unique identifier of the invitation to reject. */
    InvitationId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. */
    ResourceArn: string;
    /** The tags to assign to the specified resource. Tag values can be empty, for example, "MyTagKey" : "". You can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags ad */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference. */
    ResourceArn: string;
    /** The tag keys. */
    TagKeys: string[];
}
export interface UpdateMemberInput {
    /** The unique identifier of the member. */
    MemberId: string;
    /** The unique identifier of the Managed Blockchain network to which the member belongs. */
    NetworkId: string;
    /** Configuration properties for publishing to Amazon CloudWatch Logs. */
    LogPublishingConfiguration?: MemberLogPublishingConfiguration;
}
export interface UpdateNodeInput {
    /** The unique identifier of the network that the node is on. */
    NetworkId: string;
    /** The unique identifier of the node. */
    NodeId: string;
    /** Configuration properties for publishing to Amazon CloudWatch Logs. */
    LogPublishingConfiguration?: NodeLogPublishingConfiguration;
    /** The unique identifier of the member that owns the node. Applies only to Hyperledger Fabric. */
    MemberId?: string;
}
export interface VoteOnProposalInput {
    /** The unique identifier of the network. */
    NetworkId: string;
    /** The unique identifier of the proposal. */
    ProposalId: string;
    /** The value of the vote. */
    Vote: 'YES' | 'NO';
    /** The unique identifier of the member casting the vote. */
    VoterMemberId: string;
}
/** ManagedBlockchain service binding for Step Functions SDK integrations. */
export declare class ManagedBlockchain {
    constructor();
    createAccessor<T>(params: CreateAccessorInput): Promise<T>;
    createMember<T>(params: CreateMemberInput): Promise<T>;
    createNetwork<T>(params: CreateNetworkInput): Promise<T>;
    createNode<T>(params: CreateNodeInput): Promise<T>;
    createProposal<T>(params: CreateProposalInput): Promise<T>;
    deleteAccessor<T>(params: DeleteAccessorInput): Promise<T>;
    deleteMember<T>(params: DeleteMemberInput): Promise<T>;
    deleteNode<T>(params: DeleteNodeInput): Promise<T>;
    getAccessor<T>(params: GetAccessorInput): Promise<T>;
    getMember<T>(params: GetMemberInput): Promise<T>;
    getNetwork<T>(params: GetNetworkInput): Promise<T>;
    getNode<T>(params: GetNodeInput): Promise<T>;
    getProposal<T>(params: GetProposalInput): Promise<T>;
    listAccessors<T>(params: ListAccessorsInput): Promise<T>;
    listInvitations<T>(params: ListInvitationsInput): Promise<T>;
    listMembers<T>(params: ListMembersInput): Promise<T>;
    listNetworks<T>(params: ListNetworksInput): Promise<T>;
    listNodes<T>(params: ListNodesInput): Promise<T>;
    listProposals<T>(params: ListProposalsInput): Promise<T>;
    listProposalVotes<T>(params: ListProposalVotesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    rejectInvitation<T>(params: RejectInvitationInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateMember<T>(params: UpdateMemberInput): Promise<T>;
    updateNode<T>(params: UpdateNodeInput): Promise<T>;
    voteOnProposal<T>(params: VoteOnProposalInput): Promise<T>;
}
//# sourceMappingURL=ManagedBlockchain.d.ts.map