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 BN from "bn.js";
import type { GovernanceParameters, TribecaSDK } from "../..";
import type { GovernorWrapper } from "..";
/**
 * Creates a Governor.
 * @returns
 */
export declare const createGovernorWithElectorate: ({ createElectorate, sdk, gokiSDK, owners, governanceParameters, govBaseKP, smartWalletBaseKP, }: {
    createElectorate: (governor: PublicKey) => Promise<{
        key: PublicKey;
        tx: TransactionEnvelope;
    }>;
    sdk: TribecaSDK;
    gokiSDK: GokiSDK;
    owners?: PublicKey[] | undefined;
    governanceParameters?: Partial<{
        quorumVotes: BN;
        votingDelay: BN;
        votingPeriod: BN;
        timelockDelaySeconds: BN;
    }> | undefined;
    /**
     * Base of the governor.
     */
    govBaseKP?: Keypair | undefined;
    /**
     * Base of the smart wallet.
     */
    smartWalletBaseKP?: Keypair | undefined;
}) => Promise<{
    governorWrapper: GovernorWrapper;
    smartWalletWrapper: SmartWalletWrapper;
    electorate: PublicKey;
    createTXs: {
        title: string;
        tx: TransactionEnvelope;
    }[];
}>;
//# sourceMappingURL=setup.d.ts.map