import type { EnvironmentGateway } from '../../../../modules/claude-invocation/entities/billingState/environment.gateway.js';
import type { EmberMessage } from '../../../../modules/ember-chat/entities/emberMessage/emberMessage.schema.js';
import type { EmberReadDataGateway } from '../../../../modules/ember-chat/entities/emberTool/emberTool.gateway.js';
import type { EmberAnswerTransportGateway } from '../../../../modules/ember-chat/entities/emberAnswer/emberAnswerTransport.gateway.js';
import type { EmberStreamSubscriber } from '../../../../modules/ember-chat/usecases/askEmber/emberStream.js';
export type { EmberStatus, EmberStreamSubscriber } from '../../../../modules/ember-chat/usecases/askEmber/emberStream.js';
export interface AskEmberDependencies {
    transport: EmberAnswerTransportGateway;
    environment: EnvironmentGateway;
    readData: EmberReadDataGateway;
    projectPath: string;
}
export type AskEmberResult = {
    status: 'streaming';
    subscribe: (subscriber: EmberStreamSubscriber) => void;
    cancel: () => void;
} | {
    status: 'unavailable';
    reason: string;
} | {
    status: 'billing-regression-prevented';
};
export declare function askEmber(message: EmberMessage, dependencies: AskEmberDependencies): Promise<AskEmberResult>;
//# sourceMappingURL=askEmber.usecase.d.ts.map