import Protocol from '../protocols';
import ABI from '../protocols/ethereum/abi';
export interface ScaffoldOptions {
    protocol: Protocol;
    abi?: ABI;
    indexEvents?: boolean;
    contract?: string;
    network: string;
    contractName: string;
    startBlock?: string;
    subgraphName?: string;
    node?: string;
    spkgPath?: string;
}
export default class Scaffold {
    protocol: Protocol;
    abi?: ABI;
    indexEvents?: boolean;
    contract?: string;
    network: string;
    contractName: string;
    subgraphName?: string;
    node?: string;
    startBlock?: string;
    spkgPath?: string;
    constructor(options: ScaffoldOptions);
    generatePackageJson(): Promise<string>;
    generatePackageJsonForSubstreams(): Promise<string>;
    generateManifest(): Promise<string>;
    generateSchema(): Promise<string>;
    generateTsConfig(): Promise<string>;
    generateMappings(): {
        [x: string]: Promise<string>;
    } | undefined;
    generateMapping(): Promise<string>;
    generateABIs(): {
        [x: string]: Promise<string>;
    } | undefined;
    generateTests(): {
        [x: string]: Promise<string>;
    } | undefined;
    generate(): {
        'subgraph.yaml': Promise<string>;
        'schema.graphql': Promise<string>;
        'package.json': Promise<string>;
        'tsconfig.json'?: undefined;
        src?: undefined;
        abis?: undefined;
        tests?: undefined;
    } | {
        'package.json': Promise<string>;
        'subgraph.yaml': Promise<string>;
        'schema.graphql': Promise<string>;
        'tsconfig.json': Promise<string>;
        src: {
            [x: string]: Promise<string>;
        } | undefined;
        abis: {
            [x: string]: Promise<string>;
        } | undefined;
        tests: {
            [x: string]: Promise<string>;
        } | undefined;
    };
}
