import type { Component } from "../../serverTypes";
import type { ConfigVarResultCollection, Inputs, TriggerPayload, TriggerResult } from "../../types";
export interface PackageDependencies {
    spectral: string;
    dependencies: Record<string, string>;
    devDependencies: Record<string, string>;
}
interface CreateStaticFilesProps<TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>> {
    component: Component<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>;
    dryRun: boolean;
    signature: string | null;
    packageName: string;
    dependencies: PackageDependencies;
    verbose: boolean;
    sourceDir: string;
    destinationDir: string;
    registry: string | null;
}
export declare const createStaticFiles: <TInputs extends Inputs, TActionInputs extends Inputs, TConfigVars extends ConfigVarResultCollection = ConfigVarResultCollection, TPayload extends TriggerPayload = TriggerPayload, TAllowsBranching extends boolean = boolean, TResult extends TriggerResult<TAllowsBranching, TPayload> = TriggerResult<TAllowsBranching, TPayload>>({ component, dryRun, signature, packageName, dependencies, verbose, sourceDir, destinationDir, registry, }: CreateStaticFilesProps<TInputs, TActionInputs, TConfigVars, TPayload, TAllowsBranching, TResult>) => Promise<{
    index: string | void;
    packageJson: string | void;
    tsConfig: string | void;
    readme: string | void;
}>;
interface RenderIndexProps {
    component: {
        key: string;
        public: boolean;
        signature: string | null;
    };
    dryRun: boolean;
    verbose: boolean;
    sourceDir: string;
    destinationDir: string;
}
export declare const renderIndex: ({ component, dryRun, verbose, sourceDir, destinationDir, }: RenderIndexProps) => Promise<string | void>;
interface RenderPackageJsonProps {
    dryRun: boolean;
    packageName: string;
    dependencies: PackageDependencies;
    verbose: boolean;
    sourceDir: string;
    destinationDir: string;
    registry: string | null;
}
export declare const renderPackageJson: ({ dryRun, packageName, dependencies, verbose, sourceDir, destinationDir, registry, }: RenderPackageJsonProps) => Promise<string | void>;
interface RenderTsConfigProps {
    dryRun: boolean;
    verbose: boolean;
    sourceDir: string;
    destinationDir: string;
}
export declare const renderTsConfig: ({ dryRun, verbose, sourceDir, destinationDir, }: RenderTsConfigProps) => Promise<string | void>;
interface RenderReadmeProps {
    component: {
        key: string;
        label: string;
        description: string;
        isPublic: boolean;
        action: {
            key: string;
        } | null;
        trigger: {
            key: string;
        } | null;
        connection: {
            key: string;
        } | null;
        dataSource: {
            key: string;
            type: string;
        } | null;
    };
    dryRun: boolean;
    packageName: string;
    verbose: boolean;
    sourceDir: string;
    destinationDir: string;
}
export declare const renderReadme: ({ component, dryRun, packageName, verbose, sourceDir, destinationDir, }: RenderReadmeProps) => Promise<string | void>;
export {};
