import type { Application, Entity } from './types.ts';
type UserManagementProperties<Entity> = {
    authenticationTypeUsesRemoteAuthorization: boolean;
    skipUserManagement: boolean;
    generateAuthenticationApi: boolean;
    generateUserManagement: boolean;
    generateBuiltInUserEntity?: boolean;
    generateBuiltInAuthorityEntity: boolean;
    user?: Entity & {
        adminUserDto?: string;
    };
    userManagement?: Entity;
    authority?: Entity;
    anyEntityHasRelationshipWithUser?: boolean;
};
export declare const mutateUserManagementApplication: {
    readonly __override__: false;
    readonly generateAuthenticationApi: (data: Application<any>) => boolean;
    readonly authenticationTypeUsesRemoteAuthorization: (data: Application<any>) => boolean;
    readonly skipUserManagement: (data: Application<any>) => boolean;
    readonly generateUserManagement: (data: Application<any>) => boolean;
    readonly syncUserWithIdp: (data: Application<any>) => boolean;
    readonly generateBuiltInUserEntity: ({ generateUserManagement, syncUserWithIdp }: Application<any>) => boolean | undefined;
    readonly generateBuiltInAuthorityEntity: ({ generateBuiltInUserEntity, databaseType }: Application<any>) => boolean;
};
export type BaseApplicationAddedApplicationProperties<E extends Entity> = UserManagementProperties<E> & {
    javaNodeBuildPaths: string[];
    entitySuffix: string;
    dtoSuffix: string;
    skipCommitHook?: boolean;
    fakerSeed?: string;
    blueprints?: {
        name: string;
        version: string;
    }[];
    testFrameworks?: string[];
};
export declare const mutateApplication: {
    readonly javaNodeBuildPaths: () => string[];
    readonly entitySuffix: "";
    readonly dtoSuffix: "DTO";
    readonly __override__: false;
    readonly generateAuthenticationApi: (data: Application<any>) => boolean;
    readonly authenticationTypeUsesRemoteAuthorization: (data: Application<any>) => boolean;
    readonly skipUserManagement: (data: Application<any>) => boolean;
    readonly generateUserManagement: (data: Application<any>) => boolean;
    readonly syncUserWithIdp: (data: Application<any>) => boolean;
    readonly generateBuiltInUserEntity: ({ generateUserManagement, syncUserWithIdp }: Application<any>) => boolean | undefined;
    readonly generateBuiltInAuthorityEntity: ({ generateBuiltInUserEntity, databaseType }: Application<any>) => boolean;
};
export {};
