import type { FromSchema } from 'json-schema-to-ts';
/** Matches Drizzle `DatabaseEntityRelation` / `createEntityRelationFieldsForSelect` (camelCase). */
export declare const entityRelationDatabaseSchema: {
    readonly type: 'object';
    readonly properties: {
        readonly id: {
            readonly type: 'string';
        };
        readonly organizationId: {
            readonly type: 'string';
        };
        readonly projectId: {
            readonly type: 'string';
        };
        readonly sourceKey: {
            readonly type: 'string';
        };
        readonly sourceVersion: {
            readonly type: 'string';
        };
        readonly sourceRevision: {
            readonly type: 'string';
        };
        readonly sourceToTargetRelation: {
            readonly type: 'string';
        };
        readonly targetKey: {
            readonly type: 'string';
        };
        readonly targetVersion: {
            readonly type: 'string';
        };
        readonly targetRevision: {
            readonly type: 'string';
        };
        readonly targetToSourceRelation: {
            readonly type: 'string';
        };
        readonly sourceFile: {
            readonly type: readonly ['string', 'null'];
        };
        readonly fileHash: {
            readonly type: readonly ['string', 'null'];
        };
        readonly isDeleted: {
            readonly type: readonly ['boolean', 'null'];
        };
        readonly createdAt: {
            readonly type: 'string';
        };
        readonly updatedAt: {
            readonly type: 'string';
        };
        readonly lastSeenRunId: {
            readonly type: readonly ['string', 'null'];
        };
    };
    readonly required: readonly ['id', 'organizationId', 'projectId', 'sourceKey', 'sourceVersion', 'sourceRevision', 'sourceToTargetRelation', 'targetKey', 'targetVersion', 'targetRevision', 'targetToSourceRelation', 'createdAt', 'updatedAt'];
    readonly additionalProperties: false;
};
export declare const entityDatabaseSchema: {
    readonly type: 'object';
    readonly properties: {
        readonly id: {
            readonly type: 'string';
        };
        readonly organizationId: {
            readonly type: 'string';
        };
        readonly projectId: {
            readonly type: 'string';
        };
        readonly key: {
            readonly type: 'string';
        };
        readonly type: {
            readonly type: 'string';
        };
        readonly title: {
            readonly type: 'string';
        };
        readonly summary: {
            readonly type: readonly ['string', 'null'];
        };
        readonly tags: {
            readonly type: readonly ['string', 'null'];
        };
        readonly metadata: {
            readonly type: readonly ['string', 'null'];
        };
        readonly git: {
            readonly type: readonly ['string', 'null'];
        };
        readonly contact: {
            readonly type: readonly ['string', 'null'];
        };
        readonly links: {
            readonly type: readonly ['string', 'null'];
        };
        readonly createdAt: {
            readonly type: 'string';
        };
        readonly updatedAt: {
            readonly type: 'string';
        };
        readonly source: {
            readonly type: 'string';
            readonly enum: readonly ['file', 'remote'];
        };
        readonly sourceFile: {
            readonly type: readonly ['string', 'null'];
        };
        readonly fileHash: {
            readonly type: readonly ['string', 'null'];
        };
        readonly version: {
            readonly type: readonly ['string', 'null'];
        };
        readonly revision: {
            readonly type: readonly ['string', 'null'];
        };
        readonly hash: {
            readonly type: readonly ['string', 'null'];
        };
        readonly isCurrent: {
            readonly type: readonly ['boolean', 'null'];
        };
        readonly isDefaultVersion: {
            readonly type: readonly ['boolean', 'null'];
        };
        readonly isDeleted: {
            readonly type: readonly ['boolean', 'null'];
        };
        readonly rbacTeams: {
            readonly type: readonly ['string', 'null'];
        };
    };
    readonly required: readonly ['id', 'organizationId', 'projectId', 'key', 'type', 'title', 'createdAt', 'updatedAt', 'source'];
    readonly additionalProperties: false;
};
export declare const relatedEntityDatabaseSchema: {
    readonly type: 'object';
    readonly properties: {
        readonly id: {
            readonly type: 'string';
        };
        readonly key: {
            readonly type: 'string';
        };
        readonly title: {
            readonly type: 'string';
        };
        readonly type: {
            readonly type: 'string';
        };
        readonly summary: {
            readonly type: readonly ['string', 'null'];
        };
        readonly source: {
            readonly type: 'string';
        };
        readonly relation_role: {
            readonly type: readonly ['string', 'null'];
        };
        readonly relation_type: {
            readonly type: readonly ['string', 'null'];
            readonly enum: readonly ["partOf", "hasParts", "creates", "createdBy", "owns", "ownedBy", "implements", "implementedBy", "dependsOn", "dependencyOf", "uses", "usedBy", "produces", "consumes", "linksTo", "supersedes", "supersededBy", "compatibleWith", "extends", "extendedBy", "relatesTo", "hasMember", "memberOf", "triggers", "triggeredBy", "returns", "returnedBy"];
        };
        readonly source_file: {
            readonly type: readonly ['string', 'null'];
        };
        readonly created_at: {
            readonly type: readonly ['string'];
        };
        readonly updated_at: {
            readonly type: readonly ['string'];
        };
        readonly metadata: {
            readonly type: readonly ['string', 'null'];
        };
        readonly version: {
            readonly type: readonly ['string', 'null'];
        };
    };
    readonly required: readonly ['id', 'key', 'title', 'type', 'source', 'created_at', 'updated_at'];
    readonly additionalProperties: false;
};
/**
 * Schema for "query rows" coming from SQL/drizzle selects (joins/unions), normalized to a stable
 * snake_case shape in mappers before validating.
 */
export declare const relatedEntityQueryRowDatabaseSchema: {
    readonly type: 'object';
    readonly properties: {
        readonly id: {
            readonly type: 'string';
            readonly minLength: 1;
        };
        readonly key: {
            readonly type: 'string';
            readonly minLength: 1;
        };
        readonly title: {
            readonly type: 'string';
            readonly minLength: 1;
        };
        readonly type: {
            readonly type: 'string';
            readonly minLength: 1;
        };
        readonly summary: {
            readonly type: readonly ['string', 'null'];
        };
        readonly source: {
            readonly type: 'string';
            readonly minLength: 1;
        };
        readonly source_file: {
            readonly type: readonly ['string', 'null'];
        };
        readonly created_at: {
            readonly type: readonly ['string'];
        };
        readonly updated_at: {
            readonly type: readonly ['string'];
        };
        readonly metadata: {
            readonly type: readonly ['string', 'object', 'null'];
        };
        readonly version: {
            readonly type: readonly ['string', 'null'];
        };
        readonly revision: {
            readonly type: readonly ['string', 'null'];
        };
        readonly direction: {
            readonly type: 'string';
            readonly enum: readonly ['outgoing', 'incoming'];
        };
        readonly relation_field: {
            readonly type: 'string';
            readonly minLength: 1;
        };
    };
    readonly required: readonly ['id', 'key', 'title', 'type', 'source', 'direction', 'relation_field', 'created_at', 'updated_at'];
    readonly additionalProperties: false;
};
export type EntityRelationDto = FromSchema<typeof entityRelationDatabaseSchema>;
export type EntityDto = FromSchema<typeof entityDatabaseSchema>;
export type RelatedEntityDto = FromSchema<typeof relatedEntityDatabaseSchema>;
export type RelatedEntityQueryRowDto = FromSchema<typeof relatedEntityQueryRowDatabaseSchema>;
//# sourceMappingURL=database-schemas.d.ts.map