import { AccountId, Event, EventId } from "@ticketto/types";
import { EventsCalls, EventsStorage } from "@ticketto/protocol";
import { EventsContract, KippuAccountProvider, KreivoApi } from "./types.ts";
import { PolkadotClient } from "polkadot-api";
import { TransactionSubmitter } from "./submitter.ts";
import { TickettoModelConverter } from "./tickettoModel.ts";
export declare class KippuEventsCalls implements EventsCalls {
    private readonly accountProvider;
    private readonly client;
    private readonly contract;
    private readonly submitter;
    constructor(accountProvider: KippuAccountProvider, client: PolkadotClient, contract: EventsContract, submitter: TransactionSubmitter);
    private intoContractAttendancePolicy;
    createEvent(event: Omit<Event, "id">): Promise<number>;
    update(id: EventId, event: Partial<Omit<Event, "id">>): Promise<void>;
    bumpState(id: EventId): Promise<void>;
    transferOrganiser(_id: EventId, _newOrganiser: AccountId): Promise<void>;
}
export declare class KippuEventsStorage implements EventsStorage {
    private readonly accountProvider;
    private readonly api;
    private readonly eventsContractAddress;
    private readonly contract;
    private readonly converter;
    private readonly merchantId;
    constructor(accountProvider: KippuAccountProvider, api: KreivoApi, eventsContractAddress: AccountId, contract: EventsContract, converter: TickettoModelConverter, merchantId: number);
    get(id: EventId): Promise<Event | undefined>;
    all(): Promise<Event[]>;
    organizerOf(who: AccountId): Promise<Event[]>;
    ticketHolderOf(who: AccountId): Promise<Event[]>;
}
