import { AppContext } from '../types.js';
/**
 * Result type for the IS-A child entity discovery query.
 * Returns the name of the child entity type that has a record matching
 * the given parent entity's primary key, or null if no child exists.
 */
export declare class ISAChildEntityResult {
    Success: boolean;
    ChildEntityName?: string;
    ErrorMessage?: string;
}
/**
 * Result type for the IS-A child entities discovery query (plural).
 * Returns all child entity type names that have records matching the given
 * parent entity's primary key. Used for overlapping subtype parents.
 */
export declare class ISAChildEntitiesResult {
    Success: boolean;
    ChildEntityNames?: string[];
    ErrorMessage?: string;
}
/**
 * Resolver for IS-A entity hierarchy discovery.
 *
 * Provides GraphQL endpoints for client-side code to discover child entity
 * records in an IS-A hierarchy. This enables bidirectional chain construction
 * where a loaded entity discovers its more-derived child type.
 */
export declare class ISAEntityResolver {
    /**
     * Discovers which IS-A child entity, if any, has a record with the given
     * primary key value. The server executes a single UNION ALL query across
     * all child entity tables for maximum efficiency.
     *
     * @param EntityName The parent entity name to check children for
     * @param RecordID The primary key value to search for in child tables
     * @returns The child entity name if found, or null with Success=true if no child exists
     */
    FindISAChildEntity(EntityName: string, RecordID: string, { providers, userPayload }: AppContext): Promise<ISAChildEntityResult>;
    /**
     * Discovers ALL IS-A child entities that have records with the given primary
     * key value. Used for overlapping subtype parents (AllowMultipleSubtypes = true)
     * where multiple children can coexist. The server executes a single UNION ALL
     * query across all child entity tables for maximum efficiency.
     *
     * @param EntityName The parent entity name to check children for
     * @param RecordID The primary key value to search for in child tables
     * @returns Array of child entity names found (empty if none)
     */
    FindISAChildEntities(EntityName: string, RecordID: string, { providers, userPayload }: AppContext): Promise<ISAChildEntitiesResult>;
}
export default ISAEntityResolver;
//# sourceMappingURL=ISAEntityResolver.d.ts.map