import { DbColumn } from './types';
export type SequenceClaim =
/** 관례형 파생 — 사람이 고르지 않은 이름. 충돌 판정의 **지목 대상**(고치는 비용이 1편집 = 이름 명시). */
{
kind: 'derived';
name: string;
}
/** 명시 — `sequenceName`. `autoIncrement` 는 ①오버라이드 / ②애플리케이션 채번을 가른다. */
| {
kind: 'explicit';
name: string;
autoIncrement: boolean;
};
/** 관례형 시퀀스명 = `
__seq`(PG serial 관례). 절단하지 않는다(헤더 ①~④). */
export declare function defaultSequenceName(table: string, column: string): string;
/** 컬럼 `DEFAULT nextval` 이 성립하는가 — `autoIncrement` × 수치형. 비수치형 자동증가는 타입이 맞지 않는다. */
export declare function isDbDefaultSequence(col: Pick): boolean;
/**
* 이 컬럼이 차지하는 시퀀스명과 그 출처. 아무 시퀀스도 쓰지 않으면 `null`.
*
* - `sequenceName` 이 비공백이면 **explicit** — 타입·`autoIncrement` 와 무관하게 그 이름을 차지한다
* (애플리케이션 채번은 문자열 컬럼이 지배 형상이므로 수치형 게이트를 두면 그 용법이 통째로 사라진다).
* - 아니면 `autoIncrement` × 수치형일 때만 **derived**. 비수치형 자동증가는 `DEFAULT nextval` 을 낼 수 없어
* 시퀀스를 차지하지 않는다(DDL 이 주석으로 신호하는 자리).
*/
export declare function sequenceClaim(col: Pick, table: string, column: string): SequenceClaim | null;