import * as z from 'zod/v4';

/** Clanker v3.1 token definition. */
declare const clankerTokenV3: z.ZodObject<{
    /** Name of the token. Example: "My Token". */
    name: z.ZodString;
    /** Symbol for the token. Example: "MTK". */
    symbol: z.ZodString;
    /** Image for the token. This should be a normal or ipfs url. */
    image: z.ZodDefault<z.ZodString>;
    /** Id of the chain that the token will be deployed to. Defaults to base (8453). */
    chainId: z.ZodDefault<z.ZodLiteral<8453 | 2741>>;
    /** Metadata for the token. */
    metadata: z.ZodOptional<z.ZodObject<{
        description: z.ZodOptional<z.ZodString>;
        socialMediaUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
            platform: z.ZodString;
            url: z.ZodString;
        }, z.core.$strip>>>;
        auditUrls: z.ZodOptional<z.ZodArray<z.ZodURL>>;
    }, z.core.$strict>>;
    /** Social provenance for the token. Interface defaults to "SDK" if not set. */
    context: z.ZodDefault<z.ZodObject<{
        interface: z.ZodDefault<z.ZodString>;
        platform: z.ZodOptional<z.ZodString>;
        messageId: z.ZodOptional<z.ZodString>;
        id: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    /** Defines the paired token and initial marketcap. Defaults to WETH (on Base) and 10 ETH mc. */
    pool: z.ZodDefault<z.ZodObject<{
        quoteToken: z.ZodCustom<`0x${string}`, `0x${string}`>;
        initialMarketCap: z.ZodDefault<z.ZodNumber>;
    }, z.core.$strip>>;
    /** Vault a percent of the tokens for some number of days. */
    vault: z.ZodDefault<z.ZodObject<{
        percentage: z.ZodNumber;
        durationInDays: z.ZodNumber;
    }, z.core.$strip>>;
    /** Buy some amount of tokens in the deployment transaction. */
    devBuy: z.ZodDefault<z.ZodObject<{
        ethAmount: z.ZodNumber;
        poolKey: z.ZodOptional<z.ZodObject<{
            currency0: z.ZodCustom<`0x${string}`, `0x${string}`>;
            currency1: z.ZodCustom<`0x${string}`, `0x${string}`>;
            fee: z.ZodNumber;
            tickSpacing: z.ZodNumber;
            hooks: z.ZodCustom<`0x${string}`, `0x${string}`>;
        }, z.core.$strip>>;
        amountOutMin: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>;
    /** Rewards and admins for the token. */
    rewards: z.ZodDefault<z.ZodObject<{
        creatorReward: z.ZodDefault<z.ZodNumber>;
        creatorAdmin: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
        creatorRewardRecipient: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
        interfaceAdmin: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
        interfaceRewardRecipient: z.ZodOptional<z.ZodCustom<`0x${string}`, `0x${string}`>>;
    }, z.core.$strip>>;
}, z.core.$strict>;
type ClankerTokenV3 = z.input<typeof clankerTokenV3>;

export type { ClankerTokenV3 as C };
