import BigNumber from 'bignumber.js';
import { AddInvestorUniquenessClaimParams, Context, Identity, ModifyClaimsParams } from "../../internal";
import { CddClaim, ClaimData, ClaimScope, ClaimType, IdentityWithClaims, InvestorUniquenessClaim, ProcedureMethod, ResultSet, Scope } from "../../types";
/**
 * Handles all Claims related functionality
 */
export declare class Claims {
    private context;
    /**
     * @hidden
     */
    constructor(context: Context);
    /**
     * Add an Investor Uniqueness Claim to the signing Identity
     */
    addInvestorUniquenessClaim: ProcedureMethod<AddInvestorUniquenessClaimParams, void>;
    /**
     * Add claims to Identities
     *
     * @note required roles:
     *   - Customer Due Diligence Provider: if there is at least one CDD claim in the arguments
     */
    addClaims: ProcedureMethod<Pick<ModifyClaimsParams, 'claims'>, void>;
    /**
     * Edit claims associated to Identities (only the expiry date can be modified)
     *
     * @note required roles:
     *   - Customer Due Diligence Provider: if there is at least one CDD claim in the arguments
     */
    editClaims: ProcedureMethod<Pick<ModifyClaimsParams, 'claims'>, void>;
    /**
     * Revoke claims from Identities
     *
     * @note required roles:
     *   - Customer Due Diligence Provider: if there is at least one CDD claim in the arguments
     */
    revokeClaims: ProcedureMethod<Pick<ModifyClaimsParams, 'claims'>, void>;
    /**
     * Retrieve all claims issued by an Identity
     *
     * @param opts.target - Identity (optional, defaults to the signing Identity)
     * @param opts.includeExpired - whether to include expired claims. Defaults to true
     *
     * @note supports pagination
     * @note uses the middleware
     */
    getIssuedClaims(opts?: {
        target?: string | Identity;
        includeExpired?: boolean;
        size?: BigNumber;
        start?: BigNumber;
    }): Promise<ResultSet<ClaimData>>;
    /**
     * Retrieve a list of Identities with claims associated to them. Can be filtered using parameters
     *
     * @param opts.targets - Identities (or Identity IDs) for which to fetch claims (targets). Defaults to all targets
     * @param opts.trustedClaimIssuers - Identity IDs of claim issuers. Defaults to all claim issuers
     * @param opts.scope - scope of the claims to fetch. Defaults to any scope
     * @param opts.claimTypes - types of the claims to fetch. Defaults to any type
     * @param opts.includeExpired - whether to include expired claims. Defaults to true
     * @param opts.size - page size
     * @param opts.start - page offset
     *
     * @note supports pagination
     * @note uses the middleware
     */
    getIdentitiesWithClaims(opts?: {
        targets?: (string | Identity)[];
        trustedClaimIssuers?: (string | Identity)[];
        scope?: Scope;
        claimTypes?: Exclude<ClaimType, ClaimType.InvestorUniquenessV2>[];
        includeExpired?: boolean;
        size?: BigNumber;
        start?: BigNumber;
    }): Promise<ResultSet<IdentityWithClaims>>;
    /**
     * Retrieve all scopes in which claims have been made for the target Identity.
     *   If the scope is an asset DID, the corresponding ticker is returned as well
     *
     * @param opts.target - Identity for which to fetch claim scopes (optional, defaults to the signing Identity)
     */
    getClaimScopes(opts?: {
        target?: string | Identity;
    }): Promise<ClaimScope[]>;
    /**
     * Retrieve the list of CDD claims for a target Identity
     *
     * @param opts.target - Identity for which to fetch CDD claims (optional, defaults to the signing Identity)
     * @param opts.includeExpired - whether to include expired claims. Defaults to true
     */
    getCddClaims(opts?: {
        target?: string | Identity;
        includeExpired?: boolean;
    }): Promise<ClaimData<CddClaim>[]>;
    /**
     * Retrieve the list of InvestorUniqueness claims for a target Identity
     *
     * @param opts.target - Identity for which to fetch CDD claims (optional, defaults to the signing Identity)
     * @param opts.includeExpired - whether to include expired claims. Defaults to true
     */
    getInvestorUniquenessClaims(opts?: {
        target?: string | Identity;
        includeExpired?: boolean;
    }): Promise<ClaimData<InvestorUniquenessClaim>[]>;
    /**
     * Retrieve all claims issued about an Identity, grouped by claim issuer
     *
     * @param opts.target - Identity for which to fetch targeting claims (optional, defaults to the signing Identity)
     * @param opts.includeExpired - whether to include expired claims. Defaults to true
     *
     * @note supports pagination
     * @note uses the middleware (optional)
     */
    getTargetingClaims(opts?: {
        target?: string | Identity;
        scope?: Scope;
        trustedClaimIssuers?: (string | Identity)[];
        includeExpired?: boolean;
        size?: BigNumber;
        start?: BigNumber;
    }): Promise<ResultSet<IdentityWithClaims>>;
}
//# sourceMappingURL=Claims.d.ts.map