import { AccountId, EventId, Ticket, TicketId } from "@ticketto/types";
import { TicketsCalls, TicketsStorage } from "@ticketto/protocol";
import { KippuAccountProvider, KreivoApi, TicketsContract } from "./types.ts";
import { TransactionSubmitter } from "./submitter.ts";
import { TickettoModelConverter } from "./tickettoModel.ts";
export declare class KippuTicketsCalls implements TicketsCalls {
    private readonly accountProvider;
    private readonly api;
    private readonly tickets;
    private readonly submitter;
    private readonly merchantId;
    constructor(accountProvider: KippuAccountProvider, api: KreivoApi, tickets: TicketsContract, submitter: TransactionSubmitter, merchantId: number);
    issue(eventId: EventId): Promise<bigint>;
    submitAttendanceCall(input: Uint8Array): Promise<void>;
    initiatePendingTransfer(eventId: EventId, id: TicketId, beneficiary: AccountId): Promise<void>;
    acceptPendingTransfer(eventId: EventId, id: TicketId): Promise<void>;
    cancelPendingTransfer(eventId: EventId, id: TicketId): Promise<void>;
    sell(_issuer: EventId, _id: TicketId, _receiver: AccountId): Promise<void>;
    withdrawSell(_eventId: EventId, _id: TicketId): Promise<void>;
    buy(issuer: EventId, id: TicketId): Promise<void>;
}
export declare class KippuTicketsStorage implements TicketsStorage {
    private readonly accountProvider;
    private readonly api;
    private readonly tickets;
    private readonly submitter;
    private readonly merchantId;
    private readonly converter;
    constructor(accountProvider: KippuAccountProvider, api: KreivoApi, tickets: TicketsContract, submitter: TransactionSubmitter, merchantId: number, converter: TickettoModelConverter);
    get(eventId: EventId, id: TicketId): Promise<Ticket | undefined>;
    all(eventId: EventId): Promise<Ticket[]>;
    ticketHolderOf(who: AccountId, eventId?: EventId): Promise<Ticket[]>;
    attendances(eventId: EventId, id: TicketId): Promise<any[]>;
    pendingTransfersFor(who: AccountId): Promise<Ticket[]>;
    attendanceRequest(eventId: EventId, id: TicketId): Promise<Uint8Array<ArrayBufferLike>>;
}
