import type { SubscriptionSignalPayload, SubscriptionOptions } from './types';
import type { Models, SchemaQuery } from '@triplit/db';
export type EnabledSubscriptionOptions = SubscriptionOptions & {
    /**
     * If false, the subscription will return a disabled state.
     */
    enabled?: boolean;
};
/**
 * Returns the disabled state for a subscription when enabled = false
 */
export declare function getDisabledSubscriptionState<M extends Models<M>, Q extends SchemaQuery<M>>(): SubscriptionSignalPayload<M, Q>;
/**
 * Returns the initial loading state for a subscription when enabled = true
 */
export declare function getInitialSubscriptionState<M extends Models<M>, Q extends SchemaQuery<M>>(): SubscriptionSignalPayload<M, Q>;
/**
 * Checks if a subscription should be enabled based on options
 */
export declare function isSubscriptionEnabled(options?: Partial<EnabledSubscriptionOptions>): boolean;
/**
 * Returns the appropriate initial state based on whether the subscription is enabled
 */
export declare function getInitialState<M extends Models<M>, Q extends SchemaQuery<M>>(options?: Partial<EnabledSubscriptionOptions>): SubscriptionSignalPayload<M, Q>;
