import { OnDestroy, OnInit } from '@angular/core';
import { Source, SourceSpecification } from 'maplibre-gl';
import * as i0 from "@angular/core";
/**
 * @internal
 * A composition object for the source components
 */
export declare class SourceDirective implements OnInit, OnDestroy {
    /** Init injection */
    private readonly mapService;
    private readonly destroyRef;
    /**  Init input */
    readonly id: import("@angular/core").InputSignal<string>;
    /**
     * @internal
     * Used to store the current source id and make sure removeSource is only called once.
     */
    readonly sourceId: import("@angular/core").WritableSignal<string | null>;
    private readonly loadSourceSubject;
    readonly loadSource$: import("rxjs").Observable<void>;
    ngOnInit(): void;
    ngOnDestroy(): void;
    refresh(): void;
    removeSource(): void;
    addSource(source: SourceSpecification): void;
    getSource<T extends Source>(): T | undefined;
    static ɵfac: i0.ɵɵFactoryDeclaration<SourceDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SourceDirective, never, never, { "id": { "alias": "id"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
}
