import { Expression, Filter } from '@limetech/lime-web-components';
/**
 * A parsed explorer destination that the `Navigator` platform service
 * can consume directly via `navigator.navigate(path, query)`.
 *
 * `query` values are kept as their raw object form (not JSON-encoded);
 * the navigator stringifies and URL-encodes them when generating the
 * final URL, mirroring how it parses values back out via `JSON.parse`.
 */
export type ExplorerLocation = {
    path: string;
    query?: Record<string, unknown>;
};
/**
 * Build a parsed explorer destination for a filter, optionally
 * narrowing it with extra expressions AND-combined onto the filter's
 * own expression. Use this when navigating imperatively via the
 * `Navigator` service so the host SPA stays on the page (no full
 * reload).
 * @param filter - the filter set whose limetype and id form the
 * explorer path. When `undefined`, the function returns
 * `{ path: '#' }` so callers can wire it into a link without a
 * special-case branch.
 * @param extraExpressions - expressions to AND onto the filter's own
 * expression. The chart passes `{ key: groupBy, op: '=', exp: item }`
 * here, info-tile passes a back-reference constraint when the widget
 * is on an object card. Order matters in the resulting AND: extras
 * come before the filter's own expression.
 * @returns `path` plus, when there's any filter expression to apply,
 * `query.filter` holding the combined expression as a raw object (the
 * navigator stringifies and URL-encodes it when generating the URL).
 */
export declare function buildExplorerLocation(filter: Filter | undefined, extraExpressions?: Expression[]): ExplorerLocation;
/**
 * Build a Lime CRM explorer href for a filter, optionally narrowing it
 * with extra expressions AND-combined onto the filter's own expression.
 *
 * Used by widgets like `limebb-info-tile` to render anchor `<a>` links
 * to a filtered list. For imperative navigation prefer
 * {@link buildExplorerLocation} together with the `Navigator` service.
 * @param filter - the filter set whose limetype and id form the
 * explorer href. When `undefined`, the function returns `'#'` so
 * callers can wire it into a link without a special-case branch.
 * @param extraExpressions - expressions to AND onto the filter's own
 * expression, with the same ordering and use-cases as
 * {@link buildExplorerLocation}.
 * @returns an explorer href such as
 * `explorer/{limetype}/{filterId}?filter=<URL-encoded JSON>`, or
 * `'#'` when `filter` is `undefined`.
 */
export declare function buildExplorerHref(filter: Filter | undefined, extraExpressions?: Expression[]): string;
//# sourceMappingURL=explorer-link.d.ts.map