import type { DataType } from '@apache-arrow/esnext-esm';
import { Field } from '@apache-arrow/esnext-esm';
import type { ClientMeta } from './meta.js';
import type { Resource } from './resource.js';
export type ColumnResolver = (meta: ClientMeta, resource: Resource, c: Column) => Promise<void>;
export type Column = {
    name: string;
    type: DataType;
    description: string;
    primaryKey: boolean;
    notNull: boolean;
    incrementalKey: boolean;
    unique: boolean;
    resolver: ColumnResolver;
    ignoreInTests: boolean;
};
export declare const createColumn: ({ name, type, description, incrementalKey, notNull, primaryKey, resolver, unique, ignoreInTests, }?: Partial<Column>) => Column;
export declare const formatColumn: (column: Column) => string;
export declare const equals: (column: Column, other: unknown) => boolean;
export declare const toArrowField: (column: Column) => Field;
export declare const fromArrowField: (field: Field) => Column;
