import type { DBTeam, DBEnvironmentVariable, DBEnvironment } from '@nangohq/types';
export declare const defaultEnvironments: string[];
declare class EnvironmentService {
    getEnvironmentsByAccountId(account_id: number): Promise<Pick<DBEnvironment, 'name'>[]>;
    getAccountAndEnvironmentBySecretKey(secretKey: string): Promise<{
        account: DBTeam;
        environment: DBEnvironment;
    } | null>;
    getAccountIdFromEnvironment(environment_id: number): Promise<number | null>;
    getAccountFromEnvironment(environment_id: number): Promise<DBTeam | null>;
    getAccountUUIDFromEnvironmentUUID(environment_uuid: string): Promise<string | null>;
    getAccountAndEnvironmentByPublicKey(publicKey: string): Promise<{
        account: DBTeam;
        environment: DBEnvironment;
    } | null>;
    getAccountAndEnvironment(opts: {
        publicKey: string;
    } | {
        secretKey: string;
    } | {
        accountId: number;
        envName: string;
    } | {
        environmentId: number;
    } | {
        environmentUuid: string;
    } | {
        accountUuid: string;
        envName: string;
    }): Promise<{
        account: DBTeam;
        environment: DBEnvironment;
    } | null>;
    getIdByUuid(uuid: string): Promise<number | null>;
    getById(id: number): Promise<DBEnvironment | null>;
    getRawById(id: number): Promise<DBEnvironment | null>;
    getByEnvironmentName(accountId: number, name: string): Promise<DBEnvironment | null>;
    createEnvironment(accountId: number, environment: string): Promise<DBEnvironment | null>;
    createDefaultEnvironments(accountId: number): Promise<void>;
    getEnvironmentName(id: number): Promise<string | null>;
    /**
     * Get Environment Id For Account Assuming Prod
     * @desc legacy function to get the environment id for an account assuming prod
     * while the transition is being made from account_id to environment_id
     */
    getEnvironmentIdForAccountAssumingProd(accountId: number): Promise<number | null>;
    getEnvironmentsWithOtlpSettings(): Promise<DBEnvironment[]>;
    editCallbackUrl(callbackUrl: string, id: number): Promise<DBEnvironment | null>;
    editHmacEnabled(hmacEnabled: boolean, id: number): Promise<DBEnvironment | null>;
    editSlackNotifications(slack_notifications: boolean, id: number): Promise<DBEnvironment | null>;
    getSlackNotificationsEnabled(environmentId: number): Promise<boolean | null>;
    editHmacKey(hmacKey: string, id: number): Promise<DBEnvironment | null>;
    editOtlpSettings(environmentId: number, otlpSettings: {
        endpoint: string;
        headers: Record<string, string>;
    } | null): Promise<DBEnvironment | null>;
    getEnvironmentVariables(environment_id: number): Promise<DBEnvironmentVariable[] | null>;
    editEnvironmentVariable(environment_id: number, values: {
        name: string;
        value: string;
    }[]): Promise<number[] | null>;
    rotateKey(id: number, type: string): Promise<string | null>;
    revertKey(id: number, type: string): Promise<string | null>;
    activateKey(id: number, type: string): Promise<boolean>;
    rotateSecretKey(id: number): Promise<string | null>;
    rotatePublicKey(id: number): Promise<string | null>;
    revertSecretKey(id: number): Promise<string | null>;
    revertPublicKey(id: number): Promise<string | null>;
    activateSecretKey(id: number): Promise<boolean>;
    activatePublicKey(id: number): Promise<boolean>;
}
export declare function hashSecretKey(key: string): Promise<string>;
declare const _default: EnvironmentService;
export default _default;
