import { z } from 'zod';
export declare const verificationApiSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"etherscan">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"sourcify">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"blockscout">;
    url: z.ZodURL;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"other">;
    url: z.ZodURL;
}, z.core.$strip>], "type">;
export declare const chainProviderSchema: z.ZodObject<{
    alias: z.ZodString;
    homepageUrl: z.ZodOptional<z.ZodURL>;
    rpcUrl: z.ZodOptional<z.ZodURL>;
}, z.core.$strip>;
export declare const chainProvidersSchema: z.ZodArray<z.ZodObject<{
    alias: z.ZodString;
    homepageUrl: z.ZodOptional<z.ZodURL>;
    rpcUrl: z.ZodOptional<z.ZodURL>;
}, z.core.$strip>>;
export declare const hardhatConfigOverrides: z.ZodObject<{
    networks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
}, z.core.$strip>;
export declare const chainSchema: z.ZodObject<{
    alias: z.ZodString;
    blockExplorerUrl: z.ZodURL;
    decimals: z.ZodNumber;
    hardhatConfigOverrides: z.ZodOptional<z.ZodObject<{
        networks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
    }, z.core.$strip>>;
    id: z.ZodString;
    name: z.ZodString;
    providers: z.ZodArray<z.ZodObject<{
        alias: z.ZodString;
        homepageUrl: z.ZodOptional<z.ZodURL>;
        rpcUrl: z.ZodOptional<z.ZodURL>;
    }, z.core.$strip>>;
    skipProviderCheck: z.ZodOptional<z.ZodBoolean>;
    symbol: z.ZodString;
    testnet: z.ZodBoolean;
    verificationApi: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"etherscan">;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"sourcify">;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"blockscout">;
        url: z.ZodURL;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"other">;
        url: z.ZodURL;
    }, z.core.$strip>], "type">>;
}, z.core.$strip>;
export type Chain = z.infer<typeof chainSchema>;
export type VerificationApi = z.infer<typeof verificationApiSchema>;
export type ChainHardhatConfigOverrides = z.infer<typeof hardhatConfigOverrides>;
export type ChainProviders = z.infer<typeof chainProvidersSchema>;
export type ChainProvider = z.infer<typeof chainProviderSchema>;
export interface HardhatNetworksConfig {
    [key: string]: {
        accounts?: {
            mnemonic: string;
        };
        keycardAccount?: string;
        chainId: number;
        url: string;
    };
}
export interface HardhatEtherscanCustomChain {
    network: string;
    chainId: number;
    urls: {
        apiURL: string;
        browserURL: string;
    };
}
export interface HardhatEtherscanConfig {
    apiKey: string;
    customChains: HardhatEtherscanCustomChain[];
}
export interface HardhatBlockscoutConfig {
    enabled: boolean;
    customChains: HardhatEtherscanCustomChain[];
}
export interface ChainSupport {
    chainsSupportedByMarket: Alias[];
    chainsSupportedByOevAuctions: Alias[];
}
export declare const aliasSchema: z.ZodString;
export type Alias = z.infer<typeof aliasSchema>;
export declare const chainAlias: z.ZodString;
export type ChainAlias = z.infer<typeof chainAlias>;
export declare const dappSchema: z.ZodObject<{
    aliases: z.ZodRecord<z.ZodString, z.ZodObject<{
        chains: z.ZodArray<z.ZodString>;
        title: z.ZodString;
        description: z.ZodOptional<z.ZodString>;
    }, z.core.$strict>>;
    homepageUrl: z.ZodOptional<z.ZodURL>;
}, z.core.$strict>;
export type Dapp = z.infer<typeof dappSchema>;
//# sourceMappingURL=types.d.ts.map