/**
 * Detection and generation of Lightdash "preview project" GitHub Actions.
 *
 * Lightdash ships a canonical CI workflow (the `lightdash/cli-actions`
 * `start-preview.yml` / `close-preview.yml` pair) that spins up a temporary
 * preview project for every pull request and tears it down on close. The AI
 * writeback sandbox agent detects whether a repo already has this set up and,
 * if not, offers to open a PR adding it.
 *
 * Everything here is pure so it can be unit-tested without a sandbox or
 * database: detection takes the workflow files as `{ path, content }` and the
 * generators take only the project identity.
 */
/** A single file read out of a repo, used for detection. */
export type WorkflowFile = {
    path: string;
    content: string;
};
export type PreviewDeployDetection = {
    hasPreviewDeployWorkflow: boolean;
    /** Path of the first matching workflow file, or null when none matched. */
    workflowPath: string | null;
};
/**
 * Substrings that, when found in a `.github/workflows` file, indicate the repo
 * already deploys Lightdash preview projects. `lightdash deploy` is
 * deliberately excluded — that is a production deploy, not a preview.
 */
export declare const PREVIEW_DEPLOY_WORKFLOW_MARKERS: readonly ["lightdash start-preview", "start-preview", "lightdash stop-preview", "stop-preview", "lightdash preview", "lightdash-deploy-action"];
/** True for `.github/workflows/*.yml|*.yaml` paths (tolerates a `./` prefix). */
export declare const isWorkflowFile: (path: string) => boolean;
export declare const detectPreviewDeployWorkflow: (files: WorkflowFile[]) => PreviewDeployDetection;
/**
 * A GitHub Actions secret the preview workflow needs. `value` is non-null when
 * Lightdash can pre-fill it (project UUID, instance URL); null means the user
 * must supply it themselves — the sandbox never holds real warehouse secrets.
 */
export type PreviewDeploySecret = {
    name: string;
    value: string | null;
    description: string;
};
/**
 * Result of opening the preview-deploy setup pull request. `secrets` are the
 * GitHub Actions secrets the user must add for the workflow to run, with the
 * values Lightdash can pre-fill already populated.
 */
export type PreviewDeploySetupResult = {
    prUrl: string;
    projectName: string;
    repository: string;
    secrets: PreviewDeploySecret[];
};
export declare const getPreviewDeploySecrets: ({ projectUuid, siteUrl, }: {
    projectUuid: string;
    siteUrl: string;
}) => PreviewDeploySecret[];
/**
 * Generate the canonical Lightdash preview-on-PR workflow pair.
 *
 * @param projectSubPath dbt project directory within the repo (repo root when
 * null) — passed to the CLI as `--project-dir`.
 * @param cliVersion the `@lightdash/cli` version to pin. Pass the Lightdash
 * instance's own version (`VERSION`): every Lightdash package releases in
 * lockstep, so the instance version is the CLI version that matches it — this
 * keeps the pin reproducible, compatible, and self-updating with the instance
 * instead of frozen at a literal that rots.
 */
export declare const generatePreviewDeployWorkflowFiles: ({ projectSubPath, cliVersion, }: {
    projectSubPath: string | null;
    cliVersion: string;
}) => WorkflowFile[];
//# sourceMappingURL=previewDeployWorkflow.d.ts.map