import type { NSItemExplorerResultDto, NSOrderExplorerResultDto } from '@feedmepos/netsuite-core';
export type ExplorerRecordType = 'purchaseOrder' | 'transferOrder' | 'inventoryTransfer';
export interface ExplorerLookupResult {
    netsuiteRecord: NSPurchaseOrderLiteDto | NSTransferOrderLiteDto | NSInventoryTransferLiteDto;
    additionalInfo: {
        id: string;
        tranid: string;
        transactionnumber: string;
    } | null;
}
export declare const useNetSuiteExplorerApi: () => {
    /**
     * Look up a single NetSuite order by its internal ID.
     */
    readOrderById(recordType: ExplorerRecordType, netsuiteId: string): Promise<ExplorerLookupResult>;
    /**
     * List NetSuite records by date range, cross-referenced with FM POs.
     * Returns records with purchaseOrderSeqNo (null = unsynced, number = synced).
     */
    browseOrdersByDateRange(recordType: ExplorerRecordType, locationId: string, startDate: string, endDate: string): Promise<NSOrderExplorerResultDto[]>;
    /**
     * Query NetSuite records by IDs or date range using unified endpoint.
     * Supports lookup by recordIds, transactionIds, or date range.
     * Returns standardized NSOrderExplorerResultDto[] format with sync status.
     */
    browseOrdersByFilter(recordType: ExplorerRecordType, locationId: string, filter: {
        recordIds?: string[];
        transactionIds?: string[];
        startDate?: string;
        endDate?: string;
    }): Promise<NSOrderExplorerResultDto[]>;
    /**
     * List NetSuite items from the `item` table.
     * Pass an optional filter object to narrow results (e.g. { itemtype: 'InvtPart' }).
     */
    browseItemsByFilter(where?: string): Promise<NSItemExplorerResultDto[]>;
    /**
     * Look up a single NetSuite item by its internal ID.
     */
    readItemById(recordType: NETSUITE_ITEM_TYPES, netsuiteId: string): Promise<{
        nsRecord: NSAssemblyItemLiteDto | NSInventoryItemLiteDto | NSServiceItemLiteDto;
        replica: FdoNetSuiteItemReplica | null;
    }>;
    /**
     * List NetSuite vendors from the `vendor` table.
     * Pass an optional raw SuiteQL WHERE clause to narrow results.
     */
    browseVendorsByFilter(where?: string): Promise<NSVendorExplorerResultDto[]>;
    readVendorById(netsuiteId: string): Promise<NSVendorLiteDto>;
    triggerWebHook(payload: Omit<AfterSubmitDto, 'accountId' | 'source'>): Promise<void>;
};
