import { LimeObject, LimeType, LimeWebComponentPlatform } from '@limetech/lime-web-components';
/**
 * State emitted by ObjectResolver whenever resolved data changes.
 */
export interface ObjectResolverState {
    limeobject?: LimeObject;
    limetypeData?: LimeType;
    loadFailed: boolean;
}
/**
 * Build the navigation URL for a Lime CRM object.
 * @param limetype
 * @param objectid
 */
export declare function getObjectUrl(limetype: string, objectid: number): string;
/**
 * Resolves platform, limetype metadata, and object data for a given
 * limetype + objectid pair.
 *
 * Designed to be used by Stencil components: pass an `onStateChange`
 * callback that updates a `@State()` property to trigger re-renders.
 */
export declare class ObjectResolver {
    private onStateChange;
    private state;
    private _platform?;
    private limetype;
    private objectid;
    private hasPendingLoad;
    private isDisconnected;
    constructor(onStateChange: (state: ObjectResolverState) => void);
    /**
     * The resolved platform instance, if any.
     */
    get resolvedPlatform(): LimeWebComponentPlatform | undefined;
    /**
     * Initialize the resolver. Call from `connectedCallback()`.
     *
     * @param limetype - name of the limetype
     * @param objectid - id of the object
     * @param hostElement - the component's host element (for DOM-walking fallback)
     * @param platform - optional platform prop (skips DOM walk if provided)
     */
    connect(limetype: string, objectid: number, hostElement: HTMLElement, platform?: LimeWebComponentPlatform): void;
    /**
     * Handle prop changes. Call from `@Watch` handlers.
     *
     * Debounces via `queueMicrotask` so that simultaneous changes to
     * both `limetype` and `objectid` result in a single load.
     * @param limetype
     * @param objectid
     */
    update(limetype: string, objectid: number): void;
    /**
     * Prevent stale updates after the component disconnects.
     * Call from `disconnectedCallback()`.
     */
    disconnect(): void;
    private findPlatform;
    private hasPlatformProp;
    private resolveLimeType;
    private loadLimeObject;
    private isStale;
    private updateState;
}
//# sourceMappingURL=object-resolver.d.ts.map