import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers";
import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
import type { Listener, Provider } from "@ethersproject/providers";
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common";
export declare namespace LibBrokenLine {
    type LineStruct = {
        start: PromiseOrValue<BigNumberish>;
        bias: PromiseOrValue<BigNumberish>;
        slope: PromiseOrValue<BigNumberish>;
        cliff: PromiseOrValue<BigNumberish>;
    };
    type LineStructOutput = [number, BigNumber, BigNumber, number] & {
        start: number;
        bias: BigNumber;
        slope: BigNumber;
        cliff: number;
    };
}
export interface LockingInterface extends utils.Interface {
    functions: {
        "L1_EPOCH_SHIFT()": FunctionFragment;
        "L2_WEEK()": FunctionFragment;
        "WEEK()": FunctionFragment;
        "__Locking_init(address,uint32,uint32,uint32)": FunctionFragment;
        "astonicLabsMultisig()": FunctionFragment;
        "balanceOf(address)": FunctionFragment;
        "counter()": FunctionFragment;
        "decimals()": FunctionFragment;
        "delegate(address)": FunctionFragment;
        "delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)": FunctionFragment;
        "delegateTo(uint256,address)": FunctionFragment;
        "delegates(address)": FunctionFragment;
        "getAccountAndDelegate(uint256)": FunctionFragment;
        "getAvailableForWithdraw(address)": FunctionFragment;
        "getLock(uint96,uint32,uint32)": FunctionFragment;
        "getPastTotalSupply(uint256)": FunctionFragment;
        "getPastVotes(address,uint256)": FunctionFragment;
        "getVotes(address)": FunctionFragment;
        "getWeek()": FunctionFragment;
        "getWeekNumber(uint32)": FunctionFragment;
        "l2EpochShift()": FunctionFragment;
        "l2StartingPointWeek()": FunctionFragment;
        "l2TransitionBlock()": FunctionFragment;
        "lock(address,address,uint96,uint32,uint32)": FunctionFragment;
        "locked(address)": FunctionFragment;
        "minCliffPeriod()": FunctionFragment;
        "minSlopePeriod()": FunctionFragment;
        "name()": FunctionFragment;
        "owner()": FunctionFragment;
        "paused()": FunctionFragment;
        "relock(uint256,address,uint96,uint32,uint32)": FunctionFragment;
        "renounceOwnership()": FunctionFragment;
        "setAstonicLabsMultisig(address)": FunctionFragment;
        "setL2EpochShift(uint32)": FunctionFragment;
        "setL2StartingPointWeek(int256)": FunctionFragment;
        "setL2TransitionBlock(uint256)": FunctionFragment;
        "setMinCliffPeriod(uint32)": FunctionFragment;
        "setMinSlopePeriod(uint32)": FunctionFragment;
        "setPaused(bool)": FunctionFragment;
        "startingPointWeek()": FunctionFragment;
        "symbol()": FunctionFragment;
        "token()": FunctionFragment;
        "totalSupply()": FunctionFragment;
        "totalSupplyLine()": FunctionFragment;
        "transferOwnership(address)": FunctionFragment;
        "updateAccountLines(address,uint32)": FunctionFragment;
        "updateAccountLinesBlockNumber(address,uint32)": FunctionFragment;
        "updateTotalSupplyLine(uint32)": FunctionFragment;
        "updateTotalSupplyLineBlockNumber(uint32)": FunctionFragment;
        "withdraw()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "L1_EPOCH_SHIFT" | "L2_WEEK" | "WEEK" | "__Locking_init" | "astonicLabsMultisig" | "balanceOf" | "counter" | "decimals" | "delegate" | "delegateBySig" | "delegateTo" | "delegates" | "getAccountAndDelegate" | "getAvailableForWithdraw" | "getLock" | "getPastTotalSupply" | "getPastVotes" | "getVotes" | "getWeek" | "getWeekNumber" | "l2EpochShift" | "l2StartingPointWeek" | "l2TransitionBlock" | "lock" | "locked" | "minCliffPeriod" | "minSlopePeriod" | "name" | "owner" | "paused" | "relock" | "renounceOwnership" | "setAstonicLabsMultisig" | "setL2EpochShift" | "setL2StartingPointWeek" | "setL2TransitionBlock" | "setMinCliffPeriod" | "setMinSlopePeriod" | "setPaused" | "startingPointWeek" | "symbol" | "token" | "totalSupply" | "totalSupplyLine" | "transferOwnership" | "updateAccountLines" | "updateAccountLinesBlockNumber" | "updateTotalSupplyLine" | "updateTotalSupplyLineBlockNumber" | "withdraw"): FunctionFragment;
    encodeFunctionData(functionFragment: "L1_EPOCH_SHIFT", values?: undefined): string;
    encodeFunctionData(functionFragment: "L2_WEEK", values?: undefined): string;
    encodeFunctionData(functionFragment: "WEEK", values?: undefined): string;
    encodeFunctionData(functionFragment: "__Locking_init", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "astonicLabsMultisig", values?: undefined): string;
    encodeFunctionData(functionFragment: "balanceOf", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "counter", values?: undefined): string;
    encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
    encodeFunctionData(functionFragment: "delegate", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "delegateBySig", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "delegateTo", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "delegates", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getAccountAndDelegate", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getAvailableForWithdraw", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getLock", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "getPastTotalSupply", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getPastVotes", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "getVotes", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getWeek", values?: undefined): string;
    encodeFunctionData(functionFragment: "getWeekNumber", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "l2EpochShift", values?: undefined): string;
    encodeFunctionData(functionFragment: "l2StartingPointWeek", values?: undefined): string;
    encodeFunctionData(functionFragment: "l2TransitionBlock", values?: undefined): string;
    encodeFunctionData(functionFragment: "lock", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "locked", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "minCliffPeriod", values?: undefined): string;
    encodeFunctionData(functionFragment: "minSlopePeriod", values?: undefined): string;
    encodeFunctionData(functionFragment: "name", values?: undefined): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "paused", values?: undefined): string;
    encodeFunctionData(functionFragment: "relock", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "setAstonicLabsMultisig", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "setL2EpochShift", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setL2StartingPointWeek", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setL2TransitionBlock", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setMinCliffPeriod", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setMinSlopePeriod", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "setPaused", values: [PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: "startingPointWeek", values?: undefined): string;
    encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
    encodeFunctionData(functionFragment: "token", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string;
    encodeFunctionData(functionFragment: "totalSupplyLine", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "updateAccountLines", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "updateAccountLinesBlockNumber", values: [PromiseOrValue<string>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "updateTotalSupplyLine", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "updateTotalSupplyLineBlockNumber", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "withdraw", values?: undefined): string;
    decodeFunctionResult(functionFragment: "L1_EPOCH_SHIFT", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "L2_WEEK", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "WEEK", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "__Locking_init", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "astonicLabsMultisig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "counter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegateBySig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegateTo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "delegates", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountAndDelegate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAvailableForWithdraw", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getLock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPastTotalSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getPastVotes", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getVotes", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWeek", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getWeekNumber", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "l2EpochShift", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "l2StartingPointWeek", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "l2TransitionBlock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "locked", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "minCliffPeriod", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "minSlopePeriod", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "relock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAstonicLabsMultisig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setL2EpochShift", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setL2StartingPointWeek", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setL2TransitionBlock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMinCliffPeriod", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setMinSlopePeriod", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "startingPointWeek", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "token", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "totalSupplyLine", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateAccountLines", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateAccountLinesBlockNumber", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateTotalSupplyLine", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateTotalSupplyLineBlockNumber", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result;
    events: {
        "Delegate(uint256,address,address,uint256)": EventFragment;
        "DelegateChanged(address,address,address)": EventFragment;
        "DelegateVotesChanged(address,uint256,uint256)": EventFragment;
        "Initialized(uint8)": EventFragment;
        "LockCreate(uint256,address,address,uint256,uint256,uint256,uint256)": EventFragment;
        "OwnershipTransferred(address,address)": EventFragment;
        "Relock(uint256,address,address,uint256,uint256,uint256,uint256,uint256)": EventFragment;
        "SetAstonicLabsMultisig(address)": EventFragment;
        "SetL2EpochShift(uint32)": EventFragment;
        "SetL2StartingPointWeek(int256)": EventFragment;
        "SetL2TransitionBlock(uint256)": EventFragment;
        "SetMinCliffPeriod(uint256)": EventFragment;
        "SetMinSlopePeriod(uint256)": EventFragment;
        "SetPaused(bool)": EventFragment;
        "Withdraw(address,uint256)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "Delegate"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "DelegateChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "DelegateVotesChanged"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "LockCreate"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Relock"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetAstonicLabsMultisig"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetL2EpochShift"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetL2StartingPointWeek"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetL2TransitionBlock"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetMinCliffPeriod"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetMinSlopePeriod"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "SetPaused"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "Withdraw"): EventFragment;
}
export interface DelegateEventObject {
    id: BigNumber;
    account: string;
    delegate: string;
    time: BigNumber;
}
export type DelegateEvent = TypedEvent<[
    BigNumber,
    string,
    string,
    BigNumber
], DelegateEventObject>;
export type DelegateEventFilter = TypedEventFilter<DelegateEvent>;
export interface DelegateChangedEventObject {
    delegator: string;
    fromDelegate: string;
    toDelegate: string;
}
export type DelegateChangedEvent = TypedEvent<[
    string,
    string,
    string
], DelegateChangedEventObject>;
export type DelegateChangedEventFilter = TypedEventFilter<DelegateChangedEvent>;
export interface DelegateVotesChangedEventObject {
    delegate: string;
    previousBalance: BigNumber;
    newBalance: BigNumber;
}
export type DelegateVotesChangedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], DelegateVotesChangedEventObject>;
export type DelegateVotesChangedEventFilter = TypedEventFilter<DelegateVotesChangedEvent>;
export interface InitializedEventObject {
    version: number;
}
export type InitializedEvent = TypedEvent<[number], InitializedEventObject>;
export type InitializedEventFilter = TypedEventFilter<InitializedEvent>;
export interface LockCreateEventObject {
    id: BigNumber;
    account: string;
    delegate: string;
    time: BigNumber;
    amount: BigNumber;
    slopePeriod: BigNumber;
    cliff: BigNumber;
}
export type LockCreateEvent = TypedEvent<[
    BigNumber,
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], LockCreateEventObject>;
export type LockCreateEventFilter = TypedEventFilter<LockCreateEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export type OwnershipTransferredEvent = TypedEvent<[
    string,
    string
], OwnershipTransferredEventObject>;
export type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface RelockEventObject {
    id: BigNumber;
    account: string;
    delegate: string;
    counter: BigNumber;
    time: BigNumber;
    amount: BigNumber;
    slopePeriod: BigNumber;
    cliff: BigNumber;
}
export type RelockEvent = TypedEvent<[
    BigNumber,
    string,
    string,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber,
    BigNumber
], RelockEventObject>;
export type RelockEventFilter = TypedEventFilter<RelockEvent>;
export interface SetAstonicLabsMultisigEventObject {
    astonicLabsMultisig: string;
}
export type SetAstonicLabsMultisigEvent = TypedEvent<[
    string
], SetAstonicLabsMultisigEventObject>;
export type SetAstonicLabsMultisigEventFilter = TypedEventFilter<SetAstonicLabsMultisigEvent>;
export interface SetL2EpochShiftEventObject {
    l2EpochShift: number;
}
export type SetL2EpochShiftEvent = TypedEvent<[
    number
], SetL2EpochShiftEventObject>;
export type SetL2EpochShiftEventFilter = TypedEventFilter<SetL2EpochShiftEvent>;
export interface SetL2StartingPointWeekEventObject {
    l2StartingPointWeek: BigNumber;
}
export type SetL2StartingPointWeekEvent = TypedEvent<[
    BigNumber
], SetL2StartingPointWeekEventObject>;
export type SetL2StartingPointWeekEventFilter = TypedEventFilter<SetL2StartingPointWeekEvent>;
export interface SetL2TransitionBlockEventObject {
    l2TransitionBlock: BigNumber;
}
export type SetL2TransitionBlockEvent = TypedEvent<[
    BigNumber
], SetL2TransitionBlockEventObject>;
export type SetL2TransitionBlockEventFilter = TypedEventFilter<SetL2TransitionBlockEvent>;
export interface SetMinCliffPeriodEventObject {
    newMinCliffPeriod: BigNumber;
}
export type SetMinCliffPeriodEvent = TypedEvent<[
    BigNumber
], SetMinCliffPeriodEventObject>;
export type SetMinCliffPeriodEventFilter = TypedEventFilter<SetMinCliffPeriodEvent>;
export interface SetMinSlopePeriodEventObject {
    newMinSlopePeriod: BigNumber;
}
export type SetMinSlopePeriodEvent = TypedEvent<[
    BigNumber
], SetMinSlopePeriodEventObject>;
export type SetMinSlopePeriodEventFilter = TypedEventFilter<SetMinSlopePeriodEvent>;
export interface SetPausedEventObject {
    paused: boolean;
}
export type SetPausedEvent = TypedEvent<[boolean], SetPausedEventObject>;
export type SetPausedEventFilter = TypedEventFilter<SetPausedEvent>;
export interface WithdrawEventObject {
    account: string;
    amount: BigNumber;
}
export type WithdrawEvent = TypedEvent<[
    string,
    BigNumber
], WithdrawEventObject>;
export type WithdrawEventFilter = TypedEventFilter<WithdrawEvent>;
export interface Locking extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: LockingInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        L1_EPOCH_SHIFT(overrides?: CallOverrides): Promise<[number]>;
        L2_WEEK(overrides?: CallOverrides): Promise<[number]>;
        WEEK(overrides?: CallOverrides): Promise<[number]>;
        __Locking_init(_token: PromiseOrValue<string>, _startingPointWeek: PromiseOrValue<BigNumberish>, _minCliffPeriod: PromiseOrValue<BigNumberish>, _minSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        astonicLabsMultisig(overrides?: CallOverrides): Promise<[string]>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        counter(overrides?: CallOverrides): Promise<[BigNumber]>;
        decimals(overrides?: CallOverrides): Promise<[number]>;
        delegate(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[void]>;
        delegateBySig(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BigNumberish>, arg4: PromiseOrValue<BytesLike>, arg5: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<[void]>;
        delegateTo(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        getAccountAndDelegate(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string, string] & {
            _account: string;
            _delegate: string;
        }>;
        getAvailableForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getLock(amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            lockAmount: BigNumber;
            lockSlope: BigNumber;
        }>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getWeek(overrides?: CallOverrides): Promise<[BigNumber]>;
        getWeekNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[number]>;
        l2EpochShift(overrides?: CallOverrides): Promise<[number]>;
        l2StartingPointWeek(overrides?: CallOverrides): Promise<[BigNumber]>;
        l2TransitionBlock(overrides?: CallOverrides): Promise<[BigNumber]>;
        lock(account: PromiseOrValue<string>, _delegate: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        locked(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        minCliffPeriod(overrides?: CallOverrides): Promise<[BigNumber]>;
        minSlopePeriod(overrides?: CallOverrides): Promise<[BigNumber]>;
        name(overrides?: CallOverrides): Promise<[string]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        paused(overrides?: CallOverrides): Promise<[boolean]>;
        relock(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, newAmount: PromiseOrValue<BigNumberish>, newSlopePeriod: PromiseOrValue<BigNumberish>, newCliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAstonicLabsMultisig(astonicLabsMultisig_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setL2EpochShift(l2EpochShift_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setL2StartingPointWeek(l2StartingPointWeek_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setL2TransitionBlock(l2TransitionBlock_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMinCliffPeriod(newMinCliffPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setMinSlopePeriod(newMinSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setPaused(paused_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        startingPointWeek(overrides?: CallOverrides): Promise<[BigNumber]>;
        symbol(overrides?: CallOverrides): Promise<[string]>;
        token(overrides?: CallOverrides): Promise<[string]>;
        totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
        totalSupplyLine(overrides?: CallOverrides): Promise<[
            LibBrokenLine.LineStructOutput
        ] & {
            initial: LibBrokenLine.LineStructOutput;
        }>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateAccountLines(account: PromiseOrValue<string>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateAccountLinesBlockNumber(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateTotalSupplyLine(time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        updateTotalSupplyLineBlockNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    L1_EPOCH_SHIFT(overrides?: CallOverrides): Promise<number>;
    L2_WEEK(overrides?: CallOverrides): Promise<number>;
    WEEK(overrides?: CallOverrides): Promise<number>;
    __Locking_init(_token: PromiseOrValue<string>, _startingPointWeek: PromiseOrValue<BigNumberish>, _minCliffPeriod: PromiseOrValue<BigNumberish>, _minSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    astonicLabsMultisig(overrides?: CallOverrides): Promise<string>;
    balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    counter(overrides?: CallOverrides): Promise<BigNumber>;
    decimals(overrides?: CallOverrides): Promise<number>;
    delegate(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
    delegateBySig(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BigNumberish>, arg4: PromiseOrValue<BytesLike>, arg5: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
    delegateTo(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    getAccountAndDelegate(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string, string] & {
        _account: string;
        _delegate: string;
    }>;
    getAvailableForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getLock(amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber
    ] & {
        lockAmount: BigNumber;
        lockSlope: BigNumber;
    }>;
    getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getWeek(overrides?: CallOverrides): Promise<BigNumber>;
    getWeekNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<number>;
    l2EpochShift(overrides?: CallOverrides): Promise<number>;
    l2StartingPointWeek(overrides?: CallOverrides): Promise<BigNumber>;
    l2TransitionBlock(overrides?: CallOverrides): Promise<BigNumber>;
    lock(account: PromiseOrValue<string>, _delegate: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    locked(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    minCliffPeriod(overrides?: CallOverrides): Promise<BigNumber>;
    minSlopePeriod(overrides?: CallOverrides): Promise<BigNumber>;
    name(overrides?: CallOverrides): Promise<string>;
    owner(overrides?: CallOverrides): Promise<string>;
    paused(overrides?: CallOverrides): Promise<boolean>;
    relock(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, newAmount: PromiseOrValue<BigNumberish>, newSlopePeriod: PromiseOrValue<BigNumberish>, newCliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAstonicLabsMultisig(astonicLabsMultisig_: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setL2EpochShift(l2EpochShift_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setL2StartingPointWeek(l2StartingPointWeek_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setL2TransitionBlock(l2TransitionBlock_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMinCliffPeriod(newMinCliffPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setMinSlopePeriod(newMinSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setPaused(paused_: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    startingPointWeek(overrides?: CallOverrides): Promise<BigNumber>;
    symbol(overrides?: CallOverrides): Promise<string>;
    token(overrides?: CallOverrides): Promise<string>;
    totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
    totalSupplyLine(overrides?: CallOverrides): Promise<LibBrokenLine.LineStructOutput>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateAccountLines(account: PromiseOrValue<string>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateAccountLinesBlockNumber(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateTotalSupplyLine(time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    updateTotalSupplyLineBlockNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        L1_EPOCH_SHIFT(overrides?: CallOverrides): Promise<number>;
        L2_WEEK(overrides?: CallOverrides): Promise<number>;
        WEEK(overrides?: CallOverrides): Promise<number>;
        __Locking_init(_token: PromiseOrValue<string>, _startingPointWeek: PromiseOrValue<BigNumberish>, _minCliffPeriod: PromiseOrValue<BigNumberish>, _minSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        astonicLabsMultisig(overrides?: CallOverrides): Promise<string>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        counter(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<number>;
        delegate(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        delegateBySig(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BigNumberish>, arg4: PromiseOrValue<BytesLike>, arg5: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        delegateTo(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        getAccountAndDelegate(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[string, string] & {
            _account: string;
            _delegate: string;
        }>;
        getAvailableForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getLock(amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber
        ] & {
            lockAmount: BigNumber;
            lockSlope: BigNumber;
        }>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getWeek(overrides?: CallOverrides): Promise<BigNumber>;
        getWeekNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<number>;
        l2EpochShift(overrides?: CallOverrides): Promise<number>;
        l2StartingPointWeek(overrides?: CallOverrides): Promise<BigNumber>;
        l2TransitionBlock(overrides?: CallOverrides): Promise<BigNumber>;
        lock(account: PromiseOrValue<string>, _delegate: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        locked(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        minCliffPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        minSlopePeriod(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<string>;
        owner(overrides?: CallOverrides): Promise<string>;
        paused(overrides?: CallOverrides): Promise<boolean>;
        relock(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, newAmount: PromiseOrValue<BigNumberish>, newSlopePeriod: PromiseOrValue<BigNumberish>, newCliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        setAstonicLabsMultisig(astonicLabsMultisig_: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        setL2EpochShift(l2EpochShift_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setL2StartingPointWeek(l2StartingPointWeek_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setL2TransitionBlock(l2TransitionBlock_: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMinCliffPeriod(newMinCliffPeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setMinSlopePeriod(newMinSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setPaused(paused_: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<void>;
        startingPointWeek(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<string>;
        token(overrides?: CallOverrides): Promise<string>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyLine(overrides?: CallOverrides): Promise<LibBrokenLine.LineStructOutput>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        updateAccountLines(account: PromiseOrValue<string>, time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateAccountLinesBlockNumber(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateTotalSupplyLine(time: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        updateTotalSupplyLineBlockNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        withdraw(overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        "Delegate(uint256,address,address,uint256)"(id?: PromiseOrValue<BigNumberish> | null, account?: PromiseOrValue<string> | null, delegate?: PromiseOrValue<string> | null, time?: null): DelegateEventFilter;
        Delegate(id?: PromiseOrValue<BigNumberish> | null, account?: PromiseOrValue<string> | null, delegate?: PromiseOrValue<string> | null, time?: null): DelegateEventFilter;
        "DelegateChanged(address,address,address)"(delegator?: PromiseOrValue<string> | null, fromDelegate?: PromiseOrValue<string> | null, toDelegate?: PromiseOrValue<string> | null): DelegateChangedEventFilter;
        DelegateChanged(delegator?: PromiseOrValue<string> | null, fromDelegate?: PromiseOrValue<string> | null, toDelegate?: PromiseOrValue<string> | null): DelegateChangedEventFilter;
        "DelegateVotesChanged(address,uint256,uint256)"(delegate?: PromiseOrValue<string> | null, previousBalance?: null, newBalance?: null): DelegateVotesChangedEventFilter;
        DelegateVotesChanged(delegate?: PromiseOrValue<string> | null, previousBalance?: null, newBalance?: null): DelegateVotesChangedEventFilter;
        "Initialized(uint8)"(version?: null): InitializedEventFilter;
        Initialized(version?: null): InitializedEventFilter;
        "LockCreate(uint256,address,address,uint256,uint256,uint256,uint256)"(id?: PromiseOrValue<BigNumberish> | null, account?: PromiseOrValue<string> | null, delegate?: PromiseOrValue<string> | null, time?: null, amount?: null, slopePeriod?: null, cliff?: null): LockCreateEventFilter;
        LockCreate(id?: PromiseOrValue<BigNumberish> | null, account?: PromiseOrValue<string> | null, delegate?: PromiseOrValue<string> | null, time?: null, amount?: null, slopePeriod?: null, cliff?: null): LockCreateEventFilter;
        "OwnershipTransferred(address,address)"(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        "Relock(uint256,address,address,uint256,uint256,uint256,uint256,uint256)"(id?: PromiseOrValue<BigNumberish> | null, account?: PromiseOrValue<string> | null, delegate?: PromiseOrValue<string> | null, counter?: null, time?: null, amount?: null, slopePeriod?: null, cliff?: null): RelockEventFilter;
        Relock(id?: PromiseOrValue<BigNumberish> | null, account?: PromiseOrValue<string> | null, delegate?: PromiseOrValue<string> | null, counter?: null, time?: null, amount?: null, slopePeriod?: null, cliff?: null): RelockEventFilter;
        "SetAstonicLabsMultisig(address)"(astonicLabsMultisig?: PromiseOrValue<string> | null): SetAstonicLabsMultisigEventFilter;
        SetAstonicLabsMultisig(astonicLabsMultisig?: PromiseOrValue<string> | null): SetAstonicLabsMultisigEventFilter;
        "SetL2EpochShift(uint32)"(l2EpochShift?: PromiseOrValue<BigNumberish> | null): SetL2EpochShiftEventFilter;
        SetL2EpochShift(l2EpochShift?: PromiseOrValue<BigNumberish> | null): SetL2EpochShiftEventFilter;
        "SetL2StartingPointWeek(int256)"(l2StartingPointWeek?: PromiseOrValue<BigNumberish> | null): SetL2StartingPointWeekEventFilter;
        SetL2StartingPointWeek(l2StartingPointWeek?: PromiseOrValue<BigNumberish> | null): SetL2StartingPointWeekEventFilter;
        "SetL2TransitionBlock(uint256)"(l2TransitionBlock?: PromiseOrValue<BigNumberish> | null): SetL2TransitionBlockEventFilter;
        SetL2TransitionBlock(l2TransitionBlock?: PromiseOrValue<BigNumberish> | null): SetL2TransitionBlockEventFilter;
        "SetMinCliffPeriod(uint256)"(newMinCliffPeriod?: PromiseOrValue<BigNumberish> | null): SetMinCliffPeriodEventFilter;
        SetMinCliffPeriod(newMinCliffPeriod?: PromiseOrValue<BigNumberish> | null): SetMinCliffPeriodEventFilter;
        "SetMinSlopePeriod(uint256)"(newMinSlopePeriod?: PromiseOrValue<BigNumberish> | null): SetMinSlopePeriodEventFilter;
        SetMinSlopePeriod(newMinSlopePeriod?: PromiseOrValue<BigNumberish> | null): SetMinSlopePeriodEventFilter;
        "SetPaused(bool)"(paused?: PromiseOrValue<boolean> | null): SetPausedEventFilter;
        SetPaused(paused?: PromiseOrValue<boolean> | null): SetPausedEventFilter;
        "Withdraw(address,uint256)"(account?: PromiseOrValue<string> | null, amount?: null): WithdrawEventFilter;
        Withdraw(account?: PromiseOrValue<string> | null, amount?: null): WithdrawEventFilter;
    };
    estimateGas: {
        L1_EPOCH_SHIFT(overrides?: CallOverrides): Promise<BigNumber>;
        L2_WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        WEEK(overrides?: CallOverrides): Promise<BigNumber>;
        __Locking_init(_token: PromiseOrValue<string>, _startingPointWeek: PromiseOrValue<BigNumberish>, _minCliffPeriod: PromiseOrValue<BigNumberish>, _minSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        astonicLabsMultisig(overrides?: CallOverrides): Promise<BigNumber>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        counter(overrides?: CallOverrides): Promise<BigNumber>;
        decimals(overrides?: CallOverrides): Promise<BigNumber>;
        delegate(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        delegateBySig(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BigNumberish>, arg4: PromiseOrValue<BytesLike>, arg5: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<BigNumber>;
        delegateTo(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getAccountAndDelegate(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getAvailableForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getLock(amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getWeek(overrides?: CallOverrides): Promise<BigNumber>;
        getWeekNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        l2EpochShift(overrides?: CallOverrides): Promise<BigNumber>;
        l2StartingPointWeek(overrides?: CallOverrides): Promise<BigNumber>;
        l2TransitionBlock(overrides?: CallOverrides): Promise<BigNumber>;
        lock(account: PromiseOrValue<string>, _delegate: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        locked(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        minCliffPeriod(overrides?: CallOverrides): Promise<BigNumber>;
        minSlopePeriod(overrides?: CallOverrides): Promise<BigNumber>;
        name(overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        paused(overrides?: CallOverrides): Promise<BigNumber>;
        relock(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, newAmount: PromiseOrValue<BigNumberish>, newSlopePeriod: PromiseOrValue<BigNumberish>, newCliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAstonicLabsMultisig(astonicLabsMultisig_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setL2EpochShift(l2EpochShift_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setL2StartingPointWeek(l2StartingPointWeek_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setL2TransitionBlock(l2TransitionBlock_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMinCliffPeriod(newMinCliffPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setMinSlopePeriod(newMinSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setPaused(paused_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        startingPointWeek(overrides?: CallOverrides): Promise<BigNumber>;
        symbol(overrides?: CallOverrides): Promise<BigNumber>;
        token(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
        totalSupplyLine(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateAccountLines(account: PromiseOrValue<string>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateAccountLinesBlockNumber(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateTotalSupplyLine(time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        updateTotalSupplyLineBlockNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        L1_EPOCH_SHIFT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        L2_WEEK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        WEEK(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        __Locking_init(_token: PromiseOrValue<string>, _startingPointWeek: PromiseOrValue<BigNumberish>, _minCliffPeriod: PromiseOrValue<BigNumberish>, _minSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        astonicLabsMultisig(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        balanceOf(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        counter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        delegate(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        delegateBySig(arg0: PromiseOrValue<string>, arg1: PromiseOrValue<BigNumberish>, arg2: PromiseOrValue<BigNumberish>, arg3: PromiseOrValue<BigNumberish>, arg4: PromiseOrValue<BytesLike>, arg5: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        delegateTo(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        delegates(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAccountAndDelegate(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getAvailableForWithdraw(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getLock(amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPastTotalSupply(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPastVotes(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getVotes(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWeek(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getWeekNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        l2EpochShift(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        l2StartingPointWeek(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        l2TransitionBlock(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lock(account: PromiseOrValue<string>, _delegate: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, slopePeriod: PromiseOrValue<BigNumberish>, cliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        locked(account: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minCliffPeriod(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        minSlopePeriod(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        paused(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        relock(id: PromiseOrValue<BigNumberish>, newDelegate: PromiseOrValue<string>, newAmount: PromiseOrValue<BigNumberish>, newSlopePeriod: PromiseOrValue<BigNumberish>, newCliff: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAstonicLabsMultisig(astonicLabsMultisig_: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setL2EpochShift(l2EpochShift_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setL2StartingPointWeek(l2StartingPointWeek_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setL2TransitionBlock(l2TransitionBlock_: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMinCliffPeriod(newMinCliffPeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setMinSlopePeriod(newMinSlopePeriod: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setPaused(paused_: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        startingPointWeek(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        token(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalSupplyLine(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateAccountLines(account: PromiseOrValue<string>, time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateAccountLinesBlockNumber(account: PromiseOrValue<string>, blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateTotalSupplyLine(time: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        updateTotalSupplyLineBlockNumber(blockNumber: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
