import BigNumber from 'bignumber.js';
import { AddInstructionParams, AddInstructionsParams, Context, Entity, Instruction, ModifyVenueParams } from "../../../internal";
import { GroupedInstructions, ProcedureMethod } from "../../../types";
import { VenueDetails } from './types';
export interface UniqueIdentifiers {
    id: BigNumber;
}
/**
 * @hidden
 */
export declare function addInstructionTransformer([instruction]: Instruction[]): Instruction;
/**
 * Represents a Venue through which settlements are handled
 */
export declare class Venue extends Entity<UniqueIdentifiers, string> {
    /**
     * @hidden
     * Check if a value is of type [[UniqueIdentifiers]]
     */
    static isUniqueIdentifiers(identifier: unknown): identifier is UniqueIdentifiers;
    /**
     * Identifier number of the venue
     */
    id: BigNumber;
    /**
     * @hidden
     */
    constructor(identifiers: UniqueIdentifiers, context: Context);
    /**
     * Determine whether this Venue exists on chain
     */
    exists(): Promise<boolean>;
    /**
     * Retrieve information specific to this venue
     */
    details(): Promise<VenueDetails>;
    /**
     * Retrieve all pending and failed Instructions in this Venue
     */
    getInstructions(): Promise<Pick<GroupedInstructions, 'pending' | 'failed'>>;
    /**
     * Retrieve all pending Instructions in this Venue
     *
     * @deprecated in favor of `getInstructions`
     */
    getPendingInstructions(): Promise<Instruction[]>;
    /**
     * Fetch instructions from the chain
     */
    private fetchInstructions;
    /**
     * Creates a settlement Instruction in this Venue
     *
     * @note required role:
     *   - Venue Owner
     */
    addInstruction: ProcedureMethod<AddInstructionParams, Instruction[], Instruction>;
    /**
     * Creates a batch of settlement Instructions in this Venue
     *
     * @note required role:
     *   - Venue Owner
     */
    addInstructions: ProcedureMethod<AddInstructionsParams, Instruction[]>;
    /**
     * Modify description and type
     *
     * @note required role:
     *   - Venue Owner
     */
    modify: ProcedureMethod<ModifyVenueParams, void>;
    /**
     * Return the Venue's ID
     */
    toJson(): string;
}
//# sourceMappingURL=index.d.ts.map