import { Field } from 'o1js';
import { Ticket } from '../Structs/Ticket.js';
import { LotteryAction, TicketReduceProof } from '../Proofs/TicketReduceProof.js';
import { BaseStateManager } from './BaseStateManager.js';
import { PLottery } from '../PLottery.js';
export declare function mockProof<I, O, P>(publicOutput: O, ProofType: new ({ proof, publicInput, publicOutput, maxProofsVerified, }: {
    proof: unknown;
    publicInput: I;
    publicOutput: any;
    maxProofsVerified: 0 | 2 | 1;
}) => P, publicInput: I): Promise<P>;
export declare class PStateManager extends BaseStateManager {
    contract: PLottery;
    processedTicketData: {
        ticketId: number;
        round: number;
    };
    constructor(plottery: PLottery, isMock?: boolean, shouldUpdateState?: boolean);
    addTicket(ticket: Ticket, forceUpdate?: boolean): void;
    removeLastTicket(): Promise<void>;
    reduceTickets(winningNumberPacked: Field, actionLists?: LotteryAction[][], updateState?: boolean): Promise<TicketReduceProof>;
}
