/**
 * Port for pushing secrets and variables to a CI/CD provider (GitHub Actions,
 * GitLab CI, etc.) so generated workflows can consume them at deploy time.
 *
 * The reference adapter targets GitHub (`src/deploy/adapters/github-cicd`).
 */
export interface CiCdPort {
    /**
     * Create or update encrypted repository secrets in bulk.
     *
     * @param params.repo - `owner/name` slug of the target repository.
     * @param params.secrets - Secret name → value map. Each entry is upserted.
     */
    setSecrets(params: {
        repo: string;
        secrets: Record<string, string>;
    }): Promise<void>;
    /**
     * Create or update non-secret repository variables in bulk.
     * Variables are visible in workflow runs and safe for non-sensitive values.
     */
    setVariables(params: {
        repo: string;
        variables: Record<string, string>;
    }): Promise<void>;
    /**
     * Validate that the configured credentials can authenticate against the
     * provider. Throws with a descriptive error otherwise.
     */
    verifyAuth(): Promise<void>;
}
