import { MySqlViewBase } from "./view-base.cjs";
import { MySqlColumn } from "./columns/common.cjs";
import { MySqlCodecs } from "./codecs.cjs";
import { Check } from "./checks.cjs";
import { ForeignKey } from "./foreign-keys.cjs";
import { PrimaryKey } from "./primary-keys.cjs";
import { UniqueConstraint } from "./unique-constraint.cjs";
import { MySqlTable } from "./table.cjs";
import { Index } from "./indexes.cjs";
import { IndexForHint } from "./query-builders/select.cjs";
import { MySqlView } from "./view.cjs";
import * as __sql_sql_ts0 from "../sql/sql.cjs";
import { SQL } from "../sql/sql.cjs";
import { Subquery } from "../subquery.cjs";
import { DrizzleConfig } from "../utils.cjs";
import { AnyRelations } from "../relations.cjs";

//#region src/mysql-core/utils.d.ts
declare function extractUsedTable(table: MySqlTable | Subquery | MySqlViewBase | SQL): string[];
declare function getTableConfig(table: MySqlTable): {
  columns: MySqlColumn<any, {}>[];
  indexes: Index[];
  foreignKeys: ForeignKey[];
  checks: Check[];
  primaryKeys: PrimaryKey[];
  uniqueConstraints: UniqueConstraint[];
  name: string;
  schema: string | undefined;
  baseName: string;
};
declare function getViewConfig<TName extends string = string, TExisting extends boolean = boolean>(view: MySqlView<TName, TExisting>): {
  algorithm?: "undefined" | "merge" | "temptable";
  sqlSecurity?: "definer" | "invoker";
  withCheckOption?: "cascaded" | "local";
  name: TName;
  originalName: TName;
  schema: string | undefined;
  selectedFields: __sql_sql_ts0.ColumnsSelection;
  isExisting: TExisting;
  query: TExisting extends true ? undefined : SQL<unknown>;
  isAlias: boolean;
};
declare function convertIndexToString(indexes: IndexForHint[]): string[];
declare function toArray<T>(value: T | T[]): T[];
type DrizzleMySqlConfig<TRelations extends AnyRelations> = Omit<DrizzleConfig<Record<string, never>, TRelations>, 'schema'> & {
  codecs?: MySqlCodecs | undefined;
};
//#endregion
export { DrizzleMySqlConfig, convertIndexToString, extractUsedTable, getTableConfig, getViewConfig, toArray };
//# sourceMappingURL=utils.d.cts.map