import type { HttpFeature } from "@ngify/http";
import type { Provider } from "injection-js";
/**
 * A feature to be used with `provideAuth`.
 */
export interface AuthFeature {
    ɵproviders: Provider[];
}
export interface BrowserPlatformFeatureOptions {
    enabled?: boolean;
}
export declare function withBrowserPlatform({ enabled, }?: BrowserPlatformFeatureOptions): AuthFeature;
export interface HttpClientFeatureOptions {
    enabled?: boolean;
    features?: HttpFeature[];
}
export declare function withHttpClient({ features, enabled, }?: HttpClientFeatureOptions): AuthFeature;
export type SecurityStorageType = "session-storage" | "local-storage";
export interface SecurityStorageFeatureOptions {
    enabled?: boolean;
    type?: SecurityStorageType;
}
export declare function withSecurityStorage({ enabled, type, }?: SecurityStorageFeatureOptions): AuthFeature;
export type VanillaRouterType = "location" | "history";
export interface VanillaRouterFeatureOptions {
    enabled?: boolean;
    type?: VanillaRouterType;
}
export declare function withVanillaRouter({ enabled, type, }?: VanillaRouterFeatureOptions): AuthFeature;
export interface DefaultFeaturesOptions {
    browserPlatform?: BrowserPlatformFeatureOptions;
    securityStorage?: SecurityStorageFeatureOptions;
    router?: VanillaRouterFeatureOptions;
    httpClient?: HttpClientFeatureOptions;
}
export declare function withDefaultFeatures(options?: DefaultFeaturesOptions): AuthFeature[];
//# sourceMappingURL=core.d.ts.map