///
import { ProviderRpcClient } from "everscale-inpage-provider";
import type { Ed25519KeyPair } from "everscale-standalone-client";
import { ConnectionProperties } from "everscale-standalone-client/nodejs";
import { Giver } from "../factory";
import Joi from "joi";
export declare enum ConfigState {
EXTERNAL = 0,
INTERNAL = 1
}
export interface LockliftConfig {
compiler: {
includesPath?: string;
externalContracts?: ExternalCotracts;
} & ({
path: string;
} | {
version: string;
});
linker: {
path: string;
lib: string;
} | {
version: string;
};
networks: Networks;
mocha: Mocha.MochaOptions & {
tsconfig?: string;
};
}
export type KeysConfig = {
path?: string;
phrase?: string;
amount: number;
};
export type Networks = Record<"local" | string, NetworkValue>;
export interface NetworkValue {
giver: GiverConfig;
keys: T extends ConfigState.EXTERNAL ? KeysConfig : Required;
connection: ConnectionProperties;
tracing?: {
endpoint: string;
};
}
export type ExternalCotracts = Record>;
export type GiverConfig = {
address: string;
giverFactory?: (ever: ProviderRpcClient, keyPair: Ed25519KeyPair, address: string) => Giver;
} & ({
key: string;
} | {
phrase: string;
accountId: number;
});
export declare const JoiConfig: Joi.ObjectSchema>;
export declare function loadConfig(configPath: string): LockliftConfig;