import { Optional } from "@ahanapediatrics/ahana-fp";
import { Store } from "@ahanapediatrics/storybook-state";
import "audio-context-polyfill";
import React from "react";
import { VmShape } from "..";
declare const _default: {
    title: string;
    component: ({ enabled, width, height, shape, blocks, audioContext, stream, activateButton, }: {
        audioContext: AudioContext;
        stream: Optional<MediaStream>;
        width: number;
        height: number;
        enabled?: boolean | undefined;
        shape: VmShape;
        blocks?: number | undefined;
        activateButton?: ((onClick: () => Promise<void>) => React.ReactNode) | undefined;
    }) => JSX.Element;
};
export default _default;
declare type State = {
    audioContext: AudioContext;
    contextState: string;
    stream: Optional<MediaStream>;
};
export declare const base: {
    ({ store }: {
        store: Store<State>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
declare type OptionsState = {
    audioContext: AudioContext;
    contextState: string;
    stream: Optional<MediaStream>;
    audioDevices: MediaDeviceInfo[];
    selectedId: string;
};
export declare const withInputSelection: {
    ({ store, }: {
        store: Store<OptionsState>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            audioDevices: never[];
            selectedId: string;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                audioDevices: never[];
                selectedId: string;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
export declare const withActivateButton: {
    ({ store }: {
        store: Store<State>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
export declare const withNoInputStream: {
    ({ store }: {
        store: Store<State>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
export declare const withDisabledStream: {
    ({ store, }: {
        store: Store<State & {
            enabled: boolean;
        }>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            enabled: boolean;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                enabled: boolean;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
export declare const withStoppableStream: {
    ({ store }: {
        store: Store<State>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
export declare const disabledMeter: {
    ({ store, }: {
        store: Store<State & {
            enabled: boolean;
        }>;
    }): JSX.Element;
    story: {
        decorators: ((story: import("@ahanapediatrics/storybook-state/lib/StoryState").StoryFn<{
            stream: Optional<unknown>;
            enabled: boolean;
            audioContext: AudioContext;
            contextState: AudioContextState;
        }, unknown>, context: Partial<import("@storybook/addons").StoryContext> & {
            store: Store<{
                stream: Optional<unknown>;
                enabled: boolean;
                audioContext: AudioContext;
                contextState: AudioContextState;
            }>;
        }) => JSX.Element)[];
    };
    displayName: string;
    __docgenInfo: {
        description: string;
        displayName: string;
        props: {
            store: {
                defaultValue: null;
                description: string;
                name: string;
                required: boolean;
                type: {
                    name: string;
                };
            };
        };
    };
};
