/**
 * OCAPI System Objects Client
 *
 * This module handles all SFCC system object related operations including
 * object definitions, attribute definitions, and attribute groups.
 */
import { OCAPIConfig } from '../../types/types.js';
import { OCAPIAuthClient } from '../base/ocapi-auth-client.js';
/**
 * Interface for common query parameters
 */
interface BaseQueryParams {
    start?: number;
    count?: number;
    select?: string;
}
/**
 * Interface for search request structure
 */
interface SearchRequest {
    query?: {
        text_query?: {
            fields: string[];
            search_phrase: string;
        };
        term_query?: {
            fields: string[];
            operator: string;
            values: any[];
        };
        filtered_query?: {
            filter: any;
            query: any;
        };
        bool_query?: {
            must?: any[];
            must_not?: any[];
            should?: any[];
        };
        match_all_query?: {};
    };
    sorts?: Array<{
        field: string;
        sort_order?: 'asc' | 'desc';
    }>;
    start?: number;
    count?: number;
    select?: string;
}
/**
 * OCAPI System Objects Client
 * Specialized client for system object operations
 */
export declare class OCAPISystemObjectsClient extends OCAPIAuthClient {
    constructor(config: OCAPIConfig);
    /**
     * Get all system object definitions
     */
    getSystemObjectDefinitions(params?: BaseQueryParams): Promise<any>;
    /**
     * Get a specific system object definition by object type
     */
    getSystemObjectDefinition(objectType: string): Promise<any>;
    /**
     * Search for system object definitions using complex queries
     */
    searchSystemObjectDefinitions(searchRequest: SearchRequest): Promise<any>;
    /**
     * Search attribute definitions for a specific system object type
     */
    searchSystemObjectAttributeDefinitions(objectType: string, searchRequest: SearchRequest): Promise<any>;
    /**
     * Search attribute groups for a specific system object type
     */
    searchSystemObjectAttributeGroups(objectType: string, searchRequest: SearchRequest): Promise<any>;
    /**
     * Search attribute definitions for a specific custom object type
     */
    searchCustomObjectAttributeDefinitions(objectType: string, searchRequest: SearchRequest): Promise<any>;
}
export {};
//# sourceMappingURL=system-objects-client.d.ts.map