import * as Generator from '@postxl/generator';
export type DevOpsContextResult = WithDevOps<Generator.Context>;
export type WithDevOps<Context> = Generator.ExtendContext<Context, {
    /**
     * The configuration for the DevOps generator.
     */
    devOps: DevOpsContext;
}>;
/**
 * The configuration for the DevOps generator. Options:
 */
export type DevOpsConfig = {
    /**
     * If true, the database setup is included in the generated files.
     */
    useDatabase?: boolean;
    /**
     * List of Keycloak components to include/generate.
     */
    keycloakComponents?: KeycloakComponent[];
    /**
     * If true, Bitbucket pipeline is generated.
     */
    useBitbucket?: boolean;
    /**
     * If true, S3 setup is included in the generated files.
     */
    useS3?: boolean;
};
/**
 * The configuration for the DevOps context.
 */
export type DevOpsContext = {
    database: DatabaseConfig | undefined;
    keycloak: KeycloakConfig | undefined;
    /**
     * If true, Bitbucket pipeline is generated.
     */
    useBitbucket: boolean;
    useS3: boolean;
};
export type DatabaseConfig = {
    connectionString: string;
    username: string;
    password: string;
    database: string;
};
export type KeycloakConfig = {
    components: KeycloakComponent[];
    host: string;
    pathPrefix: string;
    clientId: string;
    clientSecret: string;
    realm: string;
};
/**
 * Keycloak configuration.
 * - `toc`: enables terms and conditions and generates terms text shown to users at first login.
 * - `userAttributes`: generates custom user attributes and corresponding mappers.
 * - `samlIdp`: generates a SAML Identity Provider.
 * - `idpMapper`: generates mappers for the SAML Identity Provider.
 * - `customScripts`: enables custom scripts for Keycloak.
 */
export type KeycloakComponent = 'toc' | 'userAttributes' | 'samlIdp' | 'idpMapper' | 'customScripts';
export declare const generatorId: string & import("zod").BRAND<"PXL.GeneratorInterfaceId">;
export declare const configureDevopsGenerator: (config?: Partial<DevOpsConfig>) => Generator.GeneratorInterface;
