import { Store } from 'mem-fs'; import { Editor } from 'mem-fs-editor'; import { PromptObject } from 'prompts'; import { ParamProvider } from '../../provider/param-provider'; import { PathProvider } from '../../provider/path-provider'; import { PhpProvider } from '../../provider/php-provider'; import { Step } from '../step-manager'; interface UserProvidedParam extends Omit { type: string; } export interface StubGenerationSchema { /** * A period-delimited subdirectory for where the stub should be * located relative to the extension PHP src. */ recommendedSubdir: string; forceRecommendedSubdir?: boolean; /** * Where should the file be created in relation to the extension root? * * Defaults to `./src`. */ root?: string; /** * The relative path to the stub's source file relative to the * `stubs` directory. */ sourceFile: string; params: UserProvidedParam[]; } export declare abstract class BasePhpStubStep implements Step { abstract type: string; protected abstract schema: StubGenerationSchema; composable: boolean; get exposes(): string[]; protected additionalExposes: string[]; protected params: Record; run(fs: Store, pathProvider: PathProvider, paramProvider: ParamProvider, _phpProvider: PhpProvider): Promise; getExposed(_pathProvider: PathProvider, _paramProvider: ParamProvider): Record; protected phpClassParams: string[]; protected compileParams(fsEditor: Editor, pathProvider: PathProvider, paramProvider: ParamProvider): Promise>; protected getFileName(_fs: Store, _pathProvider: PathProvider, paramProvider: ParamProvider): Promise; protected subdir: string; protected stubNamespace(fsEditor: Editor, pathProvider: PathProvider): string; } export {};