import { i as NodmixConfig } from "./types.nodmix-Dph4_Y30.js";
import { mt as ZodType } from "./schemas-CkRCGSfd.js";
import { P as ChannelSetupInput } from "./types.core-CQ7zCwFx.js";
import { H as ChannelSetupAdapter } from "./types.adapters-Dov1csrR.js";

//#region src/channels/plugins/setup-helpers.d.ts
declare function applyAccountNameToChannelSection(params: {
  cfg: NodmixConfig;
  channelKey: string;
  accountId: string;
  name?: string;
  alwaysUseAccounts?: boolean;
}): NodmixConfig;
declare function migrateBaseNameToDefaultAccount(params: {
  cfg: NodmixConfig;
  channelKey: string;
  alwaysUseAccounts?: boolean;
}): NodmixConfig;
declare function prepareScopedSetupConfig(params: {
  cfg: NodmixConfig;
  channelKey: string;
  accountId: string;
  name?: string;
  alwaysUseAccounts?: boolean;
  migrateBaseName?: boolean;
}): NodmixConfig;
declare function applySetupAccountConfigPatch(params: {
  cfg: NodmixConfig;
  channelKey: string;
  accountId: string;
  patch: Record<string, unknown>;
}): NodmixConfig;
declare function createPatchedAccountSetupAdapter(params: {
  channelKey: string;
  alwaysUseAccounts?: boolean;
  ensureChannelEnabled?: boolean;
  ensureAccountEnabled?: boolean;
  validateInput?: ChannelSetupAdapter["validateInput"];
  buildPatch: (input: ChannelSetupInput) => Record<string, unknown>;
}): ChannelSetupAdapter;
declare function createZodSetupInputValidator<T extends ChannelSetupInput>(params: {
  schema: ZodType<T>;
  validate?: (params: {
    cfg: NodmixConfig;
    accountId: string;
    input: T;
  }) => string | null;
}): NonNullable<ChannelSetupAdapter["validateInput"]>;
type SetupInputPresenceRequirement = {
  someOf: string[];
  message: string;
};
declare function createSetupInputPresenceValidator(params: {
  defaultAccountOnlyEnvError?: string;
  whenNotUseEnv?: SetupInputPresenceRequirement[];
  validate?: (params: {
    cfg: NodmixConfig;
    accountId: string;
    input: ChannelSetupInput;
  }) => string | null;
}): NonNullable<ChannelSetupAdapter["validateInput"]>;
declare function createEnvPatchedAccountSetupAdapter(params: {
  channelKey: string;
  alwaysUseAccounts?: boolean;
  ensureChannelEnabled?: boolean;
  ensureAccountEnabled?: boolean;
  defaultAccountOnlyEnvError: string;
  missingCredentialError: string;
  hasCredentials: (input: ChannelSetupInput) => boolean;
  validateInput?: ChannelSetupAdapter["validateInput"];
  buildPatch: (input: ChannelSetupInput) => Record<string, unknown>;
}): ChannelSetupAdapter;
declare function patchScopedAccountConfig(params: {
  cfg: NodmixConfig;
  channelKey: string;
  accountId: string;
  patch: Record<string, unknown>;
  accountPatch?: Record<string, unknown>;
  ensureChannelEnabled?: boolean;
  ensureAccountEnabled?: boolean;
  scopeDefaultToAccounts?: boolean;
}): NodmixConfig;
declare function moveSingleAccountChannelSectionToDefaultAccount(params: {
  cfg: NodmixConfig;
  channelKey: string;
}): NodmixConfig;
//#endregion
export { createSetupInputPresenceValidator as a, moveSingleAccountChannelSectionToDefaultAccount as c, createPatchedAccountSetupAdapter as i, patchScopedAccountConfig as l, applySetupAccountConfigPatch as n, createZodSetupInputValidator as o, createEnvPatchedAccountSetupAdapter as r, migrateBaseNameToDefaultAccount as s, applyAccountNameToChannelSection as t, prepareScopedSetupConfig as u };