import { Canister, type QueryParams } from "@dfinity/utils";
import { type SnsSwapDid, type SnsSwapService } from "../declarations";
import type { SnsCanisterOptions } from "./types/canister.options";
import type { NewSaleTicketParams } from "./types/swap.params";
export declare class SnsSwapCanister extends Canister<SnsSwapService> {
    static create(options: SnsCanisterOptions<SnsSwapService>): SnsSwapCanister;
    /**
     * Get the state of the swap
     */
    state: (params: QueryParams) => Promise<SnsSwapDid.GetStateResponse>;
    /**
     * Notify of the payment failure to remove the ticket
     */
    notifyPaymentFailure: () => Promise<SnsSwapDid.Ticket | undefined>;
    /**
     * Notify of the user participating in the swap
     */
    notifyParticipation: (params: SnsSwapDid.RefreshBuyerTokensRequest) => Promise<SnsSwapDid.RefreshBuyerTokensResponse>;
    /**
     * Get user commitment
     */
    getUserCommitment: (params: SnsSwapDid.GetBuyerStateRequest & QueryParams) => Promise<SnsSwapDid.BuyerState | undefined>;
    /**
     * Get sale buyers state
     */
    getDerivedState: ({ certified, }: QueryParams) => Promise<SnsSwapDid.GetDerivedStateResponse>;
    /**
     * Get sale parameters
     */
    getSaleParameters: ({ certified, }: QueryParams) => Promise<SnsSwapDid.GetSaleParametersResponse>;
    /**
     * Return a sale ticket if created and not yet removed (payment flow)
     */
    getOpenTicket: (params: QueryParams) => Promise<SnsSwapDid.Ticket | undefined>;
    /**
     * Create a sale ticket (payment flow)
     */
    newSaleTicket: (params: NewSaleTicketParams) => Promise<SnsSwapDid.Ticket>;
    /**
     * Get sale lifecycle state
     */
    getLifecycle: (params: QueryParams) => Promise<SnsSwapDid.GetLifecycleResponse>;
    /**
     * Get sale lifecycle state
     */
    getFinalizationStatus: (params: QueryParams) => Promise<SnsSwapDid.GetAutoFinalizationStatusResponse>;
}
