import { StarknetSwapData } from "../StarknetSwapData";
import { BigNumberish } from "starknet";
import { StarknetGas } from "../../base/StarknetAction";
import { StarknetTx } from "../../base/modules/StarknetTransactions";
export interface IHandler<TCommitmentData, TWitnessData> {
    readonly address: string;
    getCommitment(data: TCommitmentData): BigNumberish;
    getWitness(signer: string, data: StarknetSwapData, witnessData: TWitnessData, feeRate?: string): Promise<{
        initialTxns: StarknetTx[];
        witness: BigNumberish[];
    }>;
    getGas(data: StarknetSwapData): StarknetGas;
}
