import type { ConstructProviderFetchInput, RequestParameters, TxSendOverrides } from '../../types';
import { SignableDeltaOrderData } from './helpers/buildDeltaOrderData';
import type { DeltaAuctionOrder, TWAPDeltaOrder, TWAPBuyDeltaOrder } from './helpers/types';
export type CancelAndWithdrawDeltaOrderParams = {
    order: DeltaAuctionOrder;
    /** @description A boolean indicating whether the order is a fillable order. False by default */
    isFillable?: boolean;
};
export type CancelAndWithdrawDeltaOrder<T> = (params: CancelAndWithdrawDeltaOrderParams, overrides?: TxSendOverrides, requestParams?: RequestParameters) => Promise<T>;
export type WithdrawDeltaNative<T> = (amount: string, overrides?: TxSendOverrides, requestParams?: RequestParameters) => Promise<T>;
export type DepositNativeAndPreSignParams = {
    orderHash: string;
    depositAmount: string;
};
export type DepositNativeAndPreSign<T> = (params: DepositNativeAndPreSignParams, overrides?: Omit<TxSendOverrides, 'value'>, // value is set internally based on depositAmount
requestParams?: RequestParameters) => Promise<T>;
export type CancelTWAPAndWithdrawDeltaOrder<T> = (order: TWAPDeltaOrder, overrides?: TxSendOverrides, requestParams?: RequestParameters) => Promise<T>;
export type CancelTWAPBuyAndWithdrawDeltaOrder<T> = (order: TWAPBuyDeltaOrder, overrides?: TxSendOverrides, requestParams?: RequestParameters) => Promise<T>;
export type DepositNativeAndPreSignDeltaOrderParams = Pick<DepositNativeAndPreSignParams, 'depositAmount'> & {
    signableOrderData: SignableDeltaOrderData;
};
export type DepositNativeAndPreSignDeltaOrder<T> = (params: DepositNativeAndPreSignDeltaOrderParams, overrides?: Omit<TxSendOverrides, 'value'>, // value is set internally based on depositAmount
requestParams?: RequestParameters) => Promise<T>;
export type DeltaTokenModuleFunctions<T> = {
    /** @description Cancel an order on-chain and withdraw native ETH back to the owner */
    cancelAndWithdrawDeltaOrder: CancelAndWithdrawDeltaOrder<T>;
    /** @description Withdraw Delta Wrapped Native tokens as native ETH */
    withdrawDeltaNative: WithdrawDeltaNative<T>;
    /** @description Deposit native ETH and pre-sign a Delta order */
    depositNativeAndPreSign: DepositNativeAndPreSign<T>;
    /** @description Deposit native ETH and pre-sign a Delta order from signable order data */
    depositNativeAndPreSignDeltaOrder: DepositNativeAndPreSignDeltaOrder<T>;
    /** @description Cancel a TWAP sell order on-chain and withdraw native ETH back to the owner */
    cancelTWAPAndWithdrawDeltaOrder: CancelTWAPAndWithdrawDeltaOrder<T>;
    /** @description Cancel a TWAP buy order on-chain and withdraw native ETH back to the owner */
    cancelTWAPBuyAndWithdrawDeltaOrder: CancelTWAPBuyAndWithdrawDeltaOrder<T>;
};
export declare const constructDeltaTokenModule: <T>(options: Pick<ConstructProviderFetchInput<T, "transactCall">, "contractCaller" | "fetcher" | "apiURL" | "chainId">) => DeltaTokenModuleFunctions<T>;
//# sourceMappingURL=deltaTokenModule.d.ts.map