import type { GokiSDK, SmartWalletWrapper } from "@gokiprotocol/client";
import type { TransactionEnvelope } from "@saberhq/solana-contrib";
import type { PublicKey } from "@solana/web3.js";
import { Keypair } from "@solana/web3.js";
import type { GovernanceParameters, GovernorWrapper, LockerParams } from "../..";
import type { TribecaSDK } from "../../sdk";
import { LockerWrapper } from "./locker";
/**
 * Creates a new Locker.
 * @returns
 */
export declare const createLocker: ({ sdk, gokiSDK, govTokenMint, owners, governanceParameters, lockerParams, governorBaseKP, lockerBaseKP, smartWalletBaseKP, }: {
    sdk: TribecaSDK;
    gokiSDK: GokiSDK;
    govTokenMint: PublicKey;
    owners?: PublicKey[] | undefined;
    governanceParameters?: Partial<{
        quorumVotes: import("bn.js");
        votingDelay: import("bn.js");
        votingPeriod: import("bn.js");
        timelockDelaySeconds: import("bn.js");
    }> | undefined;
    lockerParams?: Partial<{
        whitelistEnabled: boolean;
        maxStakeVoteMultiplier: number;
        minStakeDuration: import("bn.js");
        maxStakeDuration: import("bn.js");
        proposalActivationMinVotes: import("bn.js");
    }> | undefined;
    /**
     * Base of the governor.
     */
    governorBaseKP?: Keypair | undefined;
    /**
     * Base of the governor.
     */
    lockerBaseKP?: Keypair | undefined;
    /**
     * Base of the smart wallet.
     */
    smartWalletBaseKP?: Keypair | undefined;
}) => Promise<{
    governorWrapper: GovernorWrapper;
    smartWalletWrapper: SmartWalletWrapper;
    lockerWrapper: LockerWrapper;
    createTXs: {
        title: string;
        tx: TransactionEnvelope;
    }[];
}>;
//# sourceMappingURL=setup.d.ts.map