import { AxiosInstance } from 'axios';
import { BlockchainFunctionParams, TransferTicketsRequest } from '../blockchain/types';
import { BlockchainTicket, CreateTicketHolder, GetTicket, GetTickets, QRCode, TicketHolderId, TransferParams, UpdateTicketHolder } from './types';
import { Ticket, TicketHolder } from '../event/types';
import { HealthStatus, IdParam } from '../common/types';
/**
 * Service class for ticket API calls. Requires an organizer to be set (call to `useOrganizer`)
 */
export declare class TicketService {
    readonly client: AxiosInstance;
    readonly version: string;
    constructor(client: AxiosInstance, version: string);
    /**
     * Returns true if the service is reachable
     * Currently the
     *
     * @returns Services' online status
     */
    health(): Promise<HealthStatus>;
    /**
     * Returns a ticket by its ID
     *
     * @param req ID of the order
     * @returns `Ticket`
     */
    getTicket(req: GetTicket): Promise<Ticket>;
    /**
     * Returns a list of tickets accessible to the user
     *
     * @param req Filters
     * @returns `Ticket[]` Tickets which belong to the user
     */
    getTickets(req: GetTickets): Promise<Ticket[]>;
    /**
     * Get ticket holder information together with the questionnaire attached to it
     *
     * @param ticketId
     * @param ticketHolderId
     */
    getTicketHolder(ticketHolderId: TicketHolderId): Promise<TicketHolder>;
    /**
     * Creates a ticket holder for the specified ticket
     *
     * @param ticketId Id of the ticket for which the ticket holder gets created
     * @param holder Ticket holder information
     * @returns TicketHolder
     */
    createTicketHolder(ticketId: IdParam, holder: CreateTicketHolder): Promise<TicketHolder>;
    /**
     * Creates a ticket holder for the specified ticket
     *
     * @param holder Ticket holder information
     * @returns TicketHolder
     */
    updateTicketHolder(id: TicketHolderId, holder: UpdateTicketHolder): Promise<TicketHolder>;
    /**
     * Returns a ticket transfer payload
     *
     * @param data Ticket ids and the new owner
     * @returns Payload to use for `sendTransaction`
     */
    getTransferPayload(data: TransferParams): Promise<BlockchainFunctionParams<TransferTicketsRequest>>;
    /**
     * Returns the base64 encoded QR-Code image for a given ticket
     *
     * @param ticketId ID of ticket
     * @returns
     */
    getQrCode(ticketId: IdParam): Promise<QRCode>;
    /**
     * Get ticket info based on the blockchain id
     *
     * @param blockchainTicket
     * @returns
     */
    getTicketByBlockchainId(blockchainTicket: BlockchainTicket): Promise<Ticket>;
}
//# sourceMappingURL=service.d.ts.map