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 interface TokenDistributorInterface extends utils.Interface {
    functions: {
        'claim()': FunctionFragment;
        'claimAndDelegate(address,uint256,uint8,bytes32,bytes32)': FunctionFragment;
        'claimPeriodEnd()': FunctionFragment;
        'claimPeriodStart()': FunctionFragment;
        'claimableTokens(address)': FunctionFragment;
        'owner()': FunctionFragment;
        'renounceOwnership()': FunctionFragment;
        'setRecipients(address[],uint256[])': FunctionFragment;
        'setSweepReciever(address)': FunctionFragment;
        'sweep()': FunctionFragment;
        'sweepReceiver()': FunctionFragment;
        'token()': FunctionFragment;
        'totalClaimable()': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'withdraw(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'claim' | 'claimAndDelegate' | 'claimPeriodEnd' | 'claimPeriodStart' | 'claimableTokens' | 'owner' | 'renounceOwnership' | 'setRecipients' | 'setSweepReciever' | 'sweep' | 'sweepReceiver' | 'token' | 'totalClaimable' | 'transferOwnership' | 'withdraw'): FunctionFragment;
    encodeFunctionData(functionFragment: 'claim', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimAndDelegate', values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BytesLike>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: 'claimPeriodEnd', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimPeriodStart', values?: undefined): string;
    encodeFunctionData(functionFragment: 'claimableTokens', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'renounceOwnership', values?: undefined): string;
    encodeFunctionData(functionFragment: 'setRecipients', values: [PromiseOrValue<string>[], PromiseOrValue<BigNumberish>[]]): string;
    encodeFunctionData(functionFragment: 'setSweepReciever', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'sweep', values?: undefined): string;
    encodeFunctionData(functionFragment: 'sweepReceiver', values?: undefined): string;
    encodeFunctionData(functionFragment: 'token', values?: undefined): string;
    encodeFunctionData(functionFragment: 'totalClaimable', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdraw', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'claim', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimAndDelegate', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimPeriodEnd', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimPeriodStart', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'claimableTokens', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'renounceOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setRecipients', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setSweepReciever', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sweep', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sweepReceiver', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'token', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'totalClaimable', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdraw', data: BytesLike): Result;
    events: {
        'CanClaim(address,uint256)': EventFragment;
        'HasClaimed(address,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'SweepReceiverSet(address)': EventFragment;
        'Swept(uint256)': EventFragment;
        'Withdrawal(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'CanClaim'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'HasClaimed'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SweepReceiverSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Swept'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'Withdrawal'): EventFragment;
}
export interface CanClaimEventObject {
    recipient: string;
    amount: BigNumber;
}
export declare type CanClaimEvent = TypedEvent<[string, BigNumber], CanClaimEventObject>;
export declare type CanClaimEventFilter = TypedEventFilter<CanClaimEvent>;
export interface HasClaimedEventObject {
    recipient: string;
    amount: BigNumber;
}
export declare type HasClaimedEvent = TypedEvent<[string, BigNumber], HasClaimedEventObject>;
export declare type HasClaimedEventFilter = TypedEventFilter<HasClaimedEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface SweepReceiverSetEventObject {
    newSweepReceiver: string;
}
export declare type SweepReceiverSetEvent = TypedEvent<[string], SweepReceiverSetEventObject>;
export declare type SweepReceiverSetEventFilter = TypedEventFilter<SweepReceiverSetEvent>;
export interface SweptEventObject {
    amount: BigNumber;
}
export declare type SweptEvent = TypedEvent<[BigNumber], SweptEventObject>;
export declare type SweptEventFilter = TypedEventFilter<SweptEvent>;
export interface WithdrawalEventObject {
    recipient: string;
    amount: BigNumber;
}
export declare type WithdrawalEvent = TypedEvent<[string, BigNumber], WithdrawalEventObject>;
export declare type WithdrawalEventFilter = TypedEventFilter<WithdrawalEvent>;
export interface TokenDistributor extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: TokenDistributorInterface;
    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: {
        claim(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimAndDelegate(delegatee: PromiseOrValue<string>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        claimPeriodEnd(overrides?: CallOverrides): Promise<[BigNumber]>;
        claimPeriodStart(overrides?: CallOverrides): Promise<[BigNumber]>;
        claimableTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setRecipients(_recipients: PromiseOrValue<string>[], _claimableAmount: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setSweepReciever(_sweepReceiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sweep(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sweepReceiver(overrides?: CallOverrides): Promise<[string]>;
        token(overrides?: CallOverrides): Promise<[string]>;
        totalClaimable(overrides?: CallOverrides): Promise<[BigNumber]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    claim(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimAndDelegate(delegatee: PromiseOrValue<string>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    claimPeriodEnd(overrides?: CallOverrides): Promise<BigNumber>;
    claimPeriodStart(overrides?: CallOverrides): Promise<BigNumber>;
    claimableTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    owner(overrides?: CallOverrides): Promise<string>;
    renounceOwnership(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setRecipients(_recipients: PromiseOrValue<string>[], _claimableAmount: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setSweepReciever(_sweepReceiver: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sweep(overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sweepReceiver(overrides?: CallOverrides): Promise<string>;
    token(overrides?: CallOverrides): Promise<string>;
    totalClaimable(overrides?: CallOverrides): Promise<BigNumber>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        claim(overrides?: CallOverrides): Promise<void>;
        claimAndDelegate(delegatee: PromiseOrValue<string>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<void>;
        claimPeriodEnd(overrides?: CallOverrides): Promise<BigNumber>;
        claimPeriodStart(overrides?: CallOverrides): Promise<BigNumber>;
        claimableTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<string>;
        renounceOwnership(overrides?: CallOverrides): Promise<void>;
        setRecipients(_recipients: PromiseOrValue<string>[], _claimableAmount: PromiseOrValue<BigNumberish>[], overrides?: CallOverrides): Promise<void>;
        setSweepReciever(_sweepReceiver: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        sweep(overrides?: CallOverrides): Promise<void>;
        sweepReceiver(overrides?: CallOverrides): Promise<string>;
        token(overrides?: CallOverrides): Promise<string>;
        totalClaimable(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'CanClaim(address,uint256)'(recipient?: PromiseOrValue<string> | null, amount?: null): CanClaimEventFilter;
        CanClaim(recipient?: PromiseOrValue<string> | null, amount?: null): CanClaimEventFilter;
        'HasClaimed(address,uint256)'(recipient?: PromiseOrValue<string> | null, amount?: null): HasClaimedEventFilter;
        HasClaimed(recipient?: PromiseOrValue<string> | null, amount?: null): HasClaimedEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'SweepReceiverSet(address)'(newSweepReceiver?: PromiseOrValue<string> | null): SweepReceiverSetEventFilter;
        SweepReceiverSet(newSweepReceiver?: PromiseOrValue<string> | null): SweepReceiverSetEventFilter;
        'Swept(uint256)'(amount?: null): SweptEventFilter;
        Swept(amount?: null): SweptEventFilter;
        'Withdrawal(address,uint256)'(recipient?: PromiseOrValue<string> | null, amount?: null): WithdrawalEventFilter;
        Withdrawal(recipient?: PromiseOrValue<string> | null, amount?: null): WithdrawalEventFilter;
    };
    estimateGas: {
        claim(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimAndDelegate(delegatee: PromiseOrValue<string>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        claimPeriodEnd(overrides?: CallOverrides): Promise<BigNumber>;
        claimPeriodStart(overrides?: CallOverrides): Promise<BigNumber>;
        claimableTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setRecipients(_recipients: PromiseOrValue<string>[], _claimableAmount: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setSweepReciever(_sweepReceiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sweep(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sweepReceiver(overrides?: CallOverrides): Promise<BigNumber>;
        token(overrides?: CallOverrides): Promise<BigNumber>;
        totalClaimable(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        claim(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimAndDelegate(delegatee: PromiseOrValue<string>, expiry: PromiseOrValue<BigNumberish>, v: PromiseOrValue<BigNumberish>, r: PromiseOrValue<BytesLike>, s: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        claimPeriodEnd(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimPeriodStart(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        claimableTokens(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        renounceOwnership(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setRecipients(_recipients: PromiseOrValue<string>[], _claimableAmount: PromiseOrValue<BigNumberish>[], overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setSweepReciever(_sweepReceiver: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sweep(overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sweepReceiver(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        token(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        totalClaimable(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdraw(amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
