import { BytesLike, ParamType } from "ethers";
import { Submission } from "./submission";
export declare enum Flag {
    UNWRAP_ETH = 0,
    REVERT_IF_EXTERNAL_FAIL = 1,
    PROXY_WITH_SENDER = 2,
    SEND_HASHED_DATA = 3,
    SEND_EXTERNAL_CALL_GAS_LIMIT = 4,
    MULTI_SEND = 5
}
export declare class Flags {
    private _flags;
    static decode(rawValue: number): Flags;
    constructor(...flags: Flag[]);
    setFlags(...flags: Flag[]): void;
    setFlag(flag: Flag): void;
    unsetFlag(flag: Flag): void;
    isSet(flag: Flag): boolean;
    toString(): string;
    getFlags(): Flag[];
    toHumanReadableString(): string;
}
export declare const SubmissionAutoParamsToParam: ParamType;
export declare const SubmissionAutoParamsFromParam: ParamType;
type TSendAutoParams = {
    readonly executionFee: bigint;
    readonly flags: Flags;
    readonly fallbackAddress: string;
    readonly data: string;
};
export interface SendAutoParams extends TSendAutoParams {
}
export declare class SendAutoParams {
    static decode(data: string): SendAutoParams;
    constructor(args: TSendAutoParams);
    toString(): string;
    encode(): string;
    toClaimAutoParams(submission: Submission): ClaimAutoParams;
}
type TClaimAutoParams = {
    readonly executionFee: bigint;
    readonly flags: Flags;
    readonly fallbackAddress: BytesLike;
    readonly data: BytesLike;
    readonly nativeSender: BytesLike;
};
export interface ClaimAutoParams extends TClaimAutoParams {
}
export declare class ClaimAutoParams {
    static decode(data: string): ClaimAutoParams;
    constructor(args: TClaimAutoParams);
    toString(): string;
    encode(): string;
}
export {};
//# sourceMappingURL=structs.d.ts.map