import type { Database } from "bun:sqlite";
export declare const CUSTOM_FIELD_TYPES: readonly ["text", "number", "boolean", "date", "enum"];
export type CustomFieldType = (typeof CUSTOM_FIELD_TYPES)[number];
export interface CustomFieldDefinition {
    id: string;
    project_id: string | null;
    name: string;
    slug: string;
    field_type: CustomFieldType;
    options: string[];
    required: boolean;
    default_value: string | null;
    sort_order: number;
    created_at: string;
    updated_at: string;
}
export interface TaskCustomFieldValue {
    field_id: string;
    field_name: string;
    field_type: CustomFieldType;
    value: string | number | boolean | null;
}
export interface CreateCustomFieldInput {
    name: string;
    project_id?: string;
    field_type: CustomFieldType;
    options?: string[];
    required?: boolean;
    default_value?: string;
    sort_order?: number;
}
export declare function createCustomFieldDefinition(input: CreateCustomFieldInput, db?: Database): CustomFieldDefinition;
export declare function getCustomFieldDefinition(idOrSlug: string, db?: Database): CustomFieldDefinition | null;
export declare function listCustomFieldDefinitions(projectId?: string, db?: Database): CustomFieldDefinition[];
export declare function deleteCustomFieldDefinition(idOrSlug: string, db?: Database): boolean;
export declare function setTaskCustomField(taskId: string, fieldIdOrSlug: string, value: string | number | boolean | null, db?: Database): TaskCustomFieldValue;
export declare function getTaskCustomFields(taskId: string, db?: Database): TaskCustomFieldValue[];
export declare function setTaskPriorityMeta(taskId: string, input: {
    priority_score?: number;
    priority_reason?: string;
}, db?: Database): void;
export declare function exportTaskFields(taskId: string, db?: Database): Record<string, unknown>;
//# sourceMappingURL=custom-fields.d.ts.map